左右双指针
1.求和
function sum(arr,target){
let left = 0,right = arr.length-1
while(left<right){
if(arr[left]+arr[right]>target){
right--
}else if(arr[left]+arr[right]<target){
left++
}else if(arr[left]+arr[right]==target){
return [left,right]
}
}
}
2.数组反转
function reverse(arr){
let left = 0, right = arr.length-1
while(left < right){
[arr[left],arr[right]] = [arr[right],arr[left]]
left++
right--
}
return arr
}
快慢指针
[字符串压缩](https:
function compressString(S){
let newS = '', i = 0, j = 0
while(j < S.length - 1){
if(S[j]!==S[j+1]){
newS += S[i]+(j-i+1)
i = j+1
}
j++
}
newS += S[i]+(j-i+1)
return newS.length<S.length?S
}