[LeetCode] Move Zeroes - 整数数组处理问题
生活随笔
收集整理的這篇文章主要介紹了
[LeetCode] Move Zeroes - 整数数组处理问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄:
1.Move Zeroes? - 數組0移到末尾?[順序交換]
2.
題目概述:
Given an arraynums, 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, givennums = [0, 1, 0, 3, 12], after calling your function,nums should be[1, 3, 12, 0, 0].
Note:
? ? ? ? 1.You must do this in-place without making a copy of the array.
? ? ? ? 2.Minimize the total number of operations.
void moveZeroes(int* nums, int numsSize) {int count; //計算0的個數int i,j;int n;n = 0;count = 0;for(i=0; i<numsSize; i++) {if(nums[i]==0) {count++;}else {nums[n] = nums[i];n++;}}//后置0for(j=0; j<count; j++) {nums[n] = 0;n++;} }
1.Move Zeroes? - 數組0移到末尾?[順序交換]
2.
一.Move Zeroes?
題目概述:
Given an arraynums, 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, givennums = [0, 1, 0, 3, 12], after calling your function,nums should be[1, 3, 12, 0, 0].
Note:
? ? ? ? 1.You must do this in-place without making a copy of the array.
? ? ? ? 2.Minimize the total number of operations.
解題方法:
題意是把數組nums中0的元素后置,同時不能采用賦值數組。兩種方法:
? ? ? ? 1.遇到是0的元素從數組最后向前存儲并移位,遇到非0元素從前存儲;
? ? ? ? 2.推薦:從前往后查找,不是0的元素前移,并計算0的個數,后面的全置0。
我的代碼:
方法一:Runtime:?28 ms
void moveZeroes(int* nums, int numsSize) {int count; //計算0的個數int i,j;int n;n = 0;count = 0;for(i=0; i<numsSize; i++) {if(nums[i]==0) {count++;}else {nums[n] = nums[i];n++;}}//后置0for(j=0; j<count; j++) {nums[n] = 0;n++;} }
總結
以上是生活随笔為你收集整理的[LeetCode] Move Zeroes - 整数数组处理问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于VSM的命名实体识别、歧义消解和指代
- 下一篇: [LeetCode] Isomorphi