[LeetCode] Move Zeroes - 整数数组处理问题
生活随笔
收集整理的這篇文章主要介紹了
[LeetCode] Move Zeroes - 整数数组处理问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄:
1.Move Zeroes? - 數(shù)組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; //計(jì)算0的個(gè)數(shù)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? - 數(shù)組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.
解題方法:
題意是把數(shù)組nums中0的元素后置,同時(shí)不能采用賦值數(shù)組。兩種方法:
? ? ? ? 1.遇到是0的元素從數(shù)組最后向前存儲(chǔ)并移位,遇到非0元素從前存儲(chǔ);
? ? ? ? 2.推薦:從前往后查找,不是0的元素前移,并計(jì)算0的個(gè)數(shù),后面的全置0。
我的代碼:
方法一:Runtime:?28 ms
void moveZeroes(int* nums, int numsSize) {int count; //計(jì)算0的個(gè)數(shù)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++;} }
總結(jié)
以上是生活随笔為你收集整理的[LeetCode] Move Zeroes - 整数数组处理问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基于VSM的命名实体识别、歧义消解和指代
- 下一篇: [LeetCode] Isomorphi