283. Move Zeroes
来源:互联网 发布:java不关闭流 编辑:程序博客网 时间:2024/06/01 18:56
leetcode 283
Given an array nums
, write a function to move all 0
's to the end of it while maintaining the relative order of the non-zero elements.
For example, given nums = [0, 1, 0, 3, 12]
, after calling your function,nums
should be [1, 3, 12, 0, 0]
.
Note:
- You must do this in-place without making a copy of the array.
- Minimize the total number of operations.
解题思路:第一个指针记录第一个为0的位置,第二个指针记录此后非0的位置,依次交换这些非0值与第一个指针位置上的0值,直至第一个指针后不再有非0值。代码如下:
#include<iostream>#include<vector>using namespace std;class Solution {public: void moveZeroes(vector<int>& nums) { int pos;int i=0;while(i<nums.size()) {if(nums[i]==0)//发现第一个0{pos=i;//记录需要交换的位置,0值for(;i<nums.size();i++){if(nums[i]!=0)//非0值,交换非0的数字至记录的位置pos{int temp=nums[i];nums[i]=nums[pos];nums[pos]=temp;pos++;}}}i++;} }};void main(){Solution S;int a[]={0, 0,1, 0, 3, 12};int count=sizeof(a)/sizeof(int);vector<int> v(a,a+count);S.moveZeroes(v);for(int i=0;i<v.size();i++)cout<<v[i]<<" ";cout<<endl;}
0 0
- 283.Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- 【LeetCode】283. Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- Leetcode 283. Move Zeroes
- 283. Move Zeroes
- LeetCode #283. Move Zeroes
- 283. Move Zeroes LeetCode
- 283. Move Zeroes
- LeetCode 283. Move Zeroes
- LeetCode 283. Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- LeetCode 283. Move Zeroes
- 判断二分图——染色法
- java 集合框架
- 【Codeforces 678E】【JZOJ 4648】锦标赛
- SPI flash debug trace
- js基础汇总
- 283. Move Zeroes
- 两个链表的第一个公共结点 java
- leetcode 197. Rising Temperature
- 编译时的注解编写
- IOS Dev Intro - vImage scale
- postman应用
- 进程调度
- RAC 数据库 gc 类性能问题分析
- 静态代理设计模式