数组篇
难度:简单
题目:
给定一个数组 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)