283. Move Zeroes 难度:easy
2016-10-13 20:39
225 查看
题目:
Given an array
to the end of it while maintaining the relative order of the non-zero elements.
For example, given
be
Note:
You must do this in-place without making a copy of the array.
Minimize the total number of operations.
思路:
题目要求我们在给定数组中进行操作,将0移到非0元素后面,而非0元素的相对位置保持不变。维持两个指针i,j,初始时都指向数组开头,当j所指的元素不等于0时,如果i等于j,i和j同时加1,如果i不等于j,即i指向的元素为0,i,j所指元素交换,同时i和j都加一,当j所指元素等于0时,j加一,i保持不变。
程序:
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int i = 0;
int j = 0;
while(j < nums.size())
{
if(nums[j] != 0)
{
if(i == j)
i++;
else
{
nums[i++] = nums[j];
nums[j] = 0;
}
}
j++;
}
return;
}
};
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,
numsshould
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元素的相对位置保持不变。维持两个指针i,j,初始时都指向数组开头,当j所指的元素不等于0时,如果i等于j,i和j同时加1,如果i不等于j,即i指向的元素为0,i,j所指元素交换,同时i和j都加一,当j所指元素等于0时,j加一,i保持不变。
程序:
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int i = 0;
int j = 0;
while(j < nums.size())
{
if(nums[j] != 0)
{
if(i == j)
i++;
else
{
nums[i++] = nums[j];
nums[j] = 0;
}
}
j++;
}
return;
}
};
相关文章推荐
- LeetCode [448. Find All Numbers Disappeared in an Array] 难度[easy]
- 第二次做leetcode中的难度为easy的题-258
- 453. Minimum Moves to Equal Array Elements 难度:easy
- 447. Number of Boomerangs 难度:easy
- 383. Ransom Note 难度:easy
- 318. Maximum Product of Word Lengths 难度:easy
- 461. Hamming Distance 难度:easy
- 1.Two Sum 难度:easy
- 169. Majority Element 难度:Easy 类别:分治
- LeetCode[136. Single Number] 难度[easy]
- Leetcode 刷题 Binary Search Easy难度经验总结
- [leetcode]题解+经验总结 自己做法+评论区mostvotes汇总 (只包含部分easy难度)
- 349. Intersection of Two Arrays 难度:easy
- 448. Find All Numbers Disappeared in an Array 难度:easy
- 算法设计与分析(14)-- Valid Parentheses(难度:Easy)
- 387. First Unique Character in a String 难度:easy
- 202. Happy Number 难度:easy
- 463. Island Perimeter 难度:easy
- leetcode 7 easy的难度但是还是再次的提醒了我 math的重要性
- 191. Number of 1 Bits 难度:easy