寫在前面
- 有些題目不刷,一時還真想不通一些方法
- 儘管簡單
- 還有1中可能是太菜,,,
題目詳情
給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。
示例:
輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]
說明:
必須在原數組上操作,不能拷貝額外的數組。
儘量減少操作次數。
ac代碼
- 解題思路
- 遍歷1次數組,將數組中非零元素與數組中第1個零元素交換位置。
class Solution
{
public:
void moveZeroes(vector<int>& nums)
{
int k = 0;
for(int i = 0; i < nums.size(); i++)
{
if(nums[i] != 0)
{
if(k != i) // 下標等值無需交換
swap(nums[i],nums[k]);
k++;
}
}
}
};