https://leetcode-cn.com/problems/search-insert-position/
function searchInsert(nums: number[], target: number): number {
let left = 0, right = nums.length - 1, mid = 0;
while (left <= right) {
mid = (left + right) >>> 1;
if (target === nums[mid]) {
return mid;
} else if (target < nums[mid]) {
right = mid -1;
} else {
left = mid + 1;
}
}
return left;
}
// 下标
let cursor = 0;
// hooks 存放
let hooks:any = [];
function useCallback<T>(callback: T, deps: React.DependencyList): T {
hooks[cursor] = hooks[cursor] || [callback, deps];
const [lastCallBack, lastDeps] = hooks[cursor];
const hasChanged = !deps.every((el, i) => el === lastDeps[i]);
// 依赖发生改变,赋新的值
if (hasChanged) {
hooks[cursor++] = [callback, deps];
return callback;
}
cursor++;
return lastCallBack;
}