283. 移动零

题目:https://leetcode-cn.com/problems/move-zeroes/

我的想法:使用一个慢指针和一个快指针,慢指针则是用来寻找数组中“0”的位置,快指针用来遍历整个数组以找到不为“0”的元素,然后交互

代码:

C++版本:
void moveZeroes(vector<int>& nums) {
    int fastIndex = 0, slowIndex = 0;
    while ( fastIndex < nums.size()){
        if (nums[slowIndex] == 0 && nums[fastIndex] != 0){
            nums[slowIndex] = nums[fastIndex];
            nums[fastIndex] = 0;
            slowIndex++;
        }
        else if (nums[slowIndex] != 0){
                slowIndex++;
        }
        fastIndex++;
    }
}

 

JAVA版本:    
public void moveZeroes(int[] nums) {
    int fastIndex = 0, slowIndex = 0;
    while ( fastIndex < nums.length){
            if (nums[slowIndex] == 0 && nums[fastIndex] != 0){
                nums[slowIndex] = nums[fastIndex];
                nums[fastIndex] = 0;
                slowIndex++;
            }
            else if (nums[slowIndex] != 0){
                slowIndex++;
            }
            fastIndex++;
     }
 }

 

posted @ 2021-10-11 10:25  wltree  阅读(38)  评论(0编辑  收藏  举报