var search = function(nums, target) {
let l=0,r=nums.length-1
let mid=Math.floor((l+r)/2)
while(l<=r){
if(nums[mid]===target){
return mid
}
else if(nums[mid]>target){
r=mid-1
mid=Math.floor((l+r)/2)
}
else{
l=mid+1
mid=Math.floor((l+r)/2)
}
}
return -1
}
var searchInsert = function(nums, target) {
let l=0,r=nums.length-1
while(l<=r){
let mid=Math.floor((l+r)/2)
if(nums[mid]===target){
return mid
}
else if(nums[mid]>target){
r=mid-1
}
else{
l=mid+1
}
}
return r+1
};
var searchRange = function(nums, target) {
const getLeftIdx=(nums,target)=>{
let l=0,r=nums.length-1
let leftIdx=-2
while(l<=r){
let mid=Math.floor((l+r)/2)
if(nums[mid]>=target){
r=mid-1
leftIdx=r
}
else{
l=mid+1
}
}
return leftIdx
}
const getRightIdx=(nums,target)=>{
let l=0,r=nums.length-1
let rightIdx=-2
while(l<=r){
let mid=Math.floor((l+r)/2)
if(nums[mid]>target){
r=mid-1
}
else{
l=mid+1
rightIdx=l
}
}
return rightIdx
}
let left=getLeftIdx(nums,target)
let right=getRightIdx(nums,target)
if(left===-2 || right===-2){
return [-1,-1]
}
if (right - left > 1) return [left + 1, right - 1]
return [-1,-1]
}
var removeElement = function(nums, val) {
let k=0
for(let i=0
if(nums[i]!==val){
nums[k]=nums[i]
k++
}
}
return k
}
var sortedSquares = function(nums) {
let res=new Array(nums.length).fill(0)
let k=nums.length-1
let l=0,r=nums.length-1
while(l<=r){
if(nums[l]**2>nums[r]**2){
res[k]=nums[l]**2
l++
k--
}
else if(nums[l]**2<=nums[r]**2){
res[k]=nums[r]**2
r--
k--
}
}
return res
}
var minSubArrayLen = function(target, nums) {
let l=0,r=0,res=0
let ans=nums.length+1
while(r<nums.length){
res=res+nums[r]
r++
while(res>=target){
ans=ans>r-l?r-l:ans
res=res-nums[l]
l++
}
}
return ans>nums.length?0:ans
};