zoukankan      html  css  js  c++  java
  • 283. 移动零

    还是快慢指针,看了答案,感觉对快慢指针还是不够熟悉,在去除重复数字题目中很快就想到了,但是这一题没有做出来,思路就是:

    快指针和慢指针同步往后走,找到0后慢指针指向了0的位置,快指针会继续往后移动,直到找到一个不为零的数,慢指针的值就会和快指针的值交换,慢指针往后移动一步,还是会指向0的值,当快指针到达尾部,完成了0值后移,同时没有改变非零值的顺序

    class Solution {
    public:
        void moveZeroes(vector<int>& nums) {
            if (nums.empty()) {
                return;
            }
    
            int slow_pos = 0;
            for (int i = 0; i < nums.size(); i++) {
                if (nums[i] != 0) {
                    swap(nums[slow_pos++], nums[i]);
                }
            }
        }
    };
    

      

  • 相关阅读:
    SpringMVC
    SpringMVC
    SpringMVC
    SpringMVC
    JavaWeb
    SpringMVC
    SpringMVC
    Spring
    Spring
    Spring
  • 原文地址:https://www.cnblogs.com/rulin/p/13888710.html
Copyright © 2011-2022 走看看