序言:
虽然算法很难,但不应该就放弃。
先自己尝试写,大概十几分钟仍然写不出来
看思路,再尝试跟着思路写
仍然写不出来,再看视频
leetcode其他文章:
从小白开始刷算法 数组篇 leetcode.485
数组篇
难度:简单
题目:
给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序
示例 1:
输入: nums =
[0,1,0,3,12]
输出:
[1,3,12,0,0]
示例 2:
输入: nums =
[0]
输出:
[0]
能否写出:能写出来
时间:大概10分钟
思路:比较简单,使用双指针的思路,通过遍历数组,将非零元素依次前移,然后将末尾的元素置为0。
class Solution {
public void moveZeroes(int[] nums) {
int zIndex = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] != 0) {
nums[zIndex] = nums[i];
zIndex++;
}
}
for (int j = zIndex; j< nums.length; j++) {
nums[j]= 0;
}
}
}
时间复杂度:O(n)
空间复杂度:O(1)