283. 移動零(C++)
- 1 題目描述
- 2 示例描述
- 3 解題說明
- 4 解題思路
- 5 原始碼詳解(C++)
1 題目描述
給定一個陣列 nums,撰寫一個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序,
2 示例描述
輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]
3 解題說明
1.必須在原陣列上操作,不能拷貝額外的陣列,
2.盡量減少操作次數,
4 解題思路
開兩個下標,如果陣列遍歷不等于0,則往前挪,等于0則不操作,最后補齊0即可,
5 原始碼詳解(C++)
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int index = 0 ;
int indexNum = 0 ;
while ( indexNum < nums.size() )
{
if ( nums[indexNum] != 0 )
{
nums[index] = nums[indexNum] ;
index ++ ;
}
indexNum ++ ;
}
while ( index < nums.size() )
{
nums[index] = 0 ;
index ++ ;
}
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/266993.html
標籤:其他
上一篇:Java多執行緒游戲實體分享2-雷火(手把手教你做個超炫酷的星際爭霸)
下一篇:調節芯片內置觸摸的靈敏度
