leetcode27.移除元素(双指针法)

public class LeetCode27 {
//双指针法
public int move(int[] num,int val){
//i为标记
int i=0;
//极其简单,判断是否相等,把不相等的值赋给第一位,然后加一,最终数组前面即全为不相等值,后面全为相等值,并且通过i可知不相等值有多少
for(int j=0;j<num.length;j++){
if(num[j]!=val){
num[i]=num[j];
i++;
}
}
return i;
}

public static void main(String args[]){
int[] nums={2,2,3,3};
int val=2;
LeetCode27 leetCode27=new LeetCode27();
System.out.println(leetCode27.move(nums,val));
for(int i=0;i<nums.length;i++){
System.out.println(nums[i]);
}
}
}

/**leetcode提交代码
* class Solution {
* public int removeElement(int[] nums, int val) {
* //i为标记
* int i=0;
* //极其简单,判断是否相等,把不相等的值赋给第一位,然后加一,最终数组前面即全为不相等值,后面全为相等值,并且通过i可知不相等值有多少
* for(int j=0;j<nums.length;j++){
* if(nums[j]!=val){
* nums[i]=nums[j];
* i++;
* }
* }
* return i;
* }
* }
*/

猜你喜欢

转载自www.cnblogs.com/shudaixiongbokeyuan/p/13369046.html