Leetcode 283. 移动零 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 283. 移动零 解题思路及C++实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解題思路:
只需做一次遍歷,用一個數 count 和累加已出現的 0 的個數,當 nums[i]不等于0,且count 大于0時,將 nums[i] 向前移動count 位 即可。
最后,將數組的最后 count 個數置為0即可。
?
class Solution { public:void moveZeroes(vector<int>& nums) {int count = 0; //count 用于記錄當前已出現的 0 的個數for(int i = 0; i < nums.size(); i++){if(nums[i] == 0) count++;else{if(count > 0){nums[i - count] = nums[i];}}}//將最后面的count 個數 置為 0 if(count > 0){for(int i = 0; i < count; i++){nums[nums.size() - 1 - i] = 0;}}} };?
?
?
總結
以上是生活随笔為你收集整理的Leetcode 283. 移动零 解题思路及C++实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 219. 存在重复元素
- 下一篇: C++ 读取两行不确定数量的整数