[5]两数之和
双指针法
a.图解
b.源码
/*
* @lc app=leetcode.cn id=27 lang=java
*
* [27] 移除元素
*/
// @lc code=start
class Solution {
//是否有元素
public int removeElement(int[] nums, int val) {
if(nums==null||nums.length==0){//没数组,数组里边为空
return 0;
}
int l=0;
int r=nums.length-1;
while(l<r){//已经遍历完毕
while(l<r&&nums[l]!=val){//退出循环时,l>=r遍历完毕,l<r停在了val上
l++;
}
while(l<r&&nums[r]==val){
r--;
}
int temp=nums[l];
nums[l]=nums[r];
nums[r]=temp;
}
return nums[l]==val?l:l+1;//若等于直接返回下标,不等于下标+1
}
}
// @lc code=end