Skip to content

Instantly share code, notes, and snippets.

View userkang's full-sized avatar
🎯
Focusing

zkk userkang

🎯
Focusing
View GitHub Profile
@userkang
userkang / 普通版.js
Last active March 1, 2019 04:22
有序链表合并
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
@userkang
userkang / 中心扩展法.js
Created February 28, 2019 05:42
最大回文子串
/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function(s) {
if (!s) return '';
var longest = s[0];
var expandAroundCenter = function (left, right) {
while (left >= 0 && right < s.length && s[left] === s[right]) {
left--;
@userkang
userkang / 简单版.js
Created February 28, 2019 03:05
函数柯理化
function curry(fn) {
var args = []
var len = fn.length
var result = function(n) {
args.push(n)
len--
if (len > 0) {
return result
} else {
@userkang
userkang / 动态规划解法.js
Last active February 28, 2019 02:41
斐波那契数列
function fn(n) {
if (n < 1) {
return 0
}
if (n === 1) {
return 1
}
if (n === 2) {
@userkang
userkang / 暴力解法
Created February 27, 2019 15:31
最大回文子串
/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function(s) {
var len = s.length
var maxLen = 0
var res = ''
@userkang
userkang / quickSort.js
Created January 22, 2019 04:21
js 快速排序
function quickSort(arr) {
// 交换元素
function swap(arr, a, b) {
var temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
function partition(arr, left, right) {
var pivot = arr[left];
@userkang
userkang / shuffle.js
Created January 21, 2019 10:42
打乱数组
// ES5版本
function shuffle(a) {
var i,j,t
for(i = a.length; i; i--) {
j = Math.floor(Math.random() * i)
t = a[i-1]
a[i-1] = a[j]
a[j] = t
}
return a
@userkang
userkang / add.js
Created January 17, 2019 07:25
一直加下去
function add() {
var sum = 0;
function add() {
for (var i=0; i<arguments.length; i++) {
sum += Number(arguments[i]);
}
return add;
}
add.valueOf = function valueOf(){
@userkang
userkang / throttle.js
Last active January 14, 2019 10:10
节流函数
function throttle(func, wait, options) {
var timeout, context, args
var previous = 0
if (!options) options = {}
var later = function() {
previous = options.leading === false ? 0 : Date.now()
timeout = null
func.apply(context, args)
@userkang
userkang / debounce.js
Last active January 14, 2019 09:32
防抖函数
function debounce(func, wait, immediate) {
var timeout
return function() {
var context = this
var args = arguments
if(timeout) clearTimeout(timeout)
if (immediate) {