varisMonotonic=function(nums){let up =false;let down =false;for(let i =1; i < nums.length;++i){if(nums[i]< nums[i -1]) down =true;if(nums[i]> nums[i -1]) up =true;if(down && up)returnfalse;}returntrue;};
有序数组插入元素位置 LeetCode35
二分查找,时间复杂度O(logn)
varsearchInsert=function(nums, target){let a =0;let b = nums.length;let mid =(a + b)>>1;while(a < b){if(nums[mid]> target ){
b = mid;
mid =(a + b)>>1;}if(nums[mid]< target ){if(mid === a)return mid +1;
a = mid;
mid =(a + b)>>1;}if(nums[mid]=== target )return mid;}return mid;};
有序数组合并 LeetCode88
从后往前逐个插入最大值,时间复杂度O(m + n)
varmerge=function(nums1, m, nums2, n){let pos = m + n -1;let p1 = m -1;let p2 = n -1;while(p1 >=0&& p2 >=0){let num;if(nums1[p1]> nums2[p2]){
nums1[pos--]= nums1[p1--];}else{
nums1[pos--]= nums2[p2--];}}while(p1 >=0) nums1[pos--]= nums1[p1--];while(p2 >=0) nums1[pos--]= nums2[p2--];};