40.最小的k个数
//快排又双忘了
var getLeastNumbers = function (arr, k) {
if(arr.length==0||k==0) return [];
var quickSelect = (arr, left, right)=>{
// 满足下列条件时可中止排序
if(right==k-1||left==k) return;
if(left>=right) return;
let l = left;
let r = right;
let store = arr[l];
while(l<r){
while(store<=arr[r]){
r--;
}
if(l>=r) break;
swap(arr, l++, r);
while(store>arr[l]){
l++;
}
if(l>=r) break;
swap(arr, l, r--);
}
quickSelect(arr, left, l);
quickSelect(arr, l+1,right);
}
quickSelect(arr, 0, arr.length-1);
let res = arr.splice(0,k);
return res;
};
var swap = (nums, i, j)=>{
const tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
55.I二叉树的深度
//简单题我重拳出击
var maxDepth = function(root) {
if(!root) return 0;
let max = Number.MIN_VALUE;
var helper = (root, count) =>{
max = Math.max(max, count);
if(root.left) helper(root.left, count+1);
if(root.right) helper(root.right, count+1);
}
helper(root, 1);
return max;
};