[Leetcode 27/283]移动零Move Zeroes/移除元素Remove Element

 

 

【代码】

27 移除元素

参考https://www.bilibili.com/video/BV1Pv4y1Z76N

不用管移除后半部分是否为正确答案,所以可直接nums[flag]=nums[i]

class Solution {
    public int removeElement(int[] nums, int val) {
        if(nums==null||nums.length==0)
            return 0;
        int flag=0;
        for(int i=0;i<nums.length;i++){
            if(nums[i]!=val){
                nums[flag]=nums[i];
                flag++;
            }
        }
        return flag;
    }
}

更规范的话,是把i点和flag点位置的元素进行交换(参考283)

 

283 移动0

class Solution {
    public void moveZeroes(int[] nums) {
        int j = 0;
        for(int i = 0; i < nums.length; i++) {
            if(nums[i] != 0) {
                int temp = nums[j];
                nums[j] = nums[i];
                nums[i] = temp;
                j++;
            }
        }
    }
}

 

上一篇:冰川下的世界TOR


下一篇:474. Ones and Zeroes