文章目录
所有题目源代码:[Git地址](https://github.com/ch98road/leetcode)题目方案:复杂度计算
所有题目源代码:Git地址
题目
给定一个数组 nums,编写一个函数将所有
0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例
:
输入
: [0,1,0,3,12]
输出
: [1,3,12,0,0]
说明
:
必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。
方案:
class Solution
{
public:
void moveZeroes(vector
<int> &nums
)
{
int len
= nums
.size();
int i
= 0;
while (i
< len
&& nums
[i
] != 0)
i
++;
int fast
= i
;
for (; i
< len
; i
++)
{
if (nums
[i
] != 0)
{
nums
[fast
++] = nums
[i
];
nums
[i
] = 0;
}
}
}
};
复杂度计算
时间复杂度:O(n)空间复杂度:O(1)