nums.sort((a, b)=> a - b);let left =0;let right =N-1;while(left < right){if(CONDITION=== target){// do some logic for matching case}elseif(CONDITION< target){// small. neet to increase
left +=1;}elseif(CONDITION> target){// large. neet to decrease
right -=1;}}
nums.sort((a, b)=> a - b);let left =0;let right =N-1;while(left < right){// do some logic here with left and rightif(CONDITION){
left +=1;}else{
right -=1;}}
// odd[i]1:LEFTRIGHT3:LEFT-1RIGHT+1// even[i, i +1]2:LEFTRIGHT4:LEFT-1RIGHT+1
Check values in two pointers from center to the corner.
varlongestPalindrome=function(s){constN= s.length;let left =-1;let right =-1;let max =-Infinity;let maxValue =[left, right];for(let i =0; i <N; i +=1){// odd[left, right]=[i, i];while(0<= left && right <N&& s[left]=== s[right]){if(max < right - left +1){
max = right - left +1;
maxValue =[left, right];}
left -=1;
right +=1;}// even[left, right]=[i, i +1];while(0<= left && right <N&& s[left]=== s[right]){if(max < right - left +1){
max = right - left +1;
maxValue =[left, right];}
left -=1;
right +=1;}}const[start, end]= maxValue;return s.slice(start, end +1);};