Leetcode·移动零
解法一
时间复杂度:O(N)
空间复杂度:O(1)
执行耗时:0ms
内存消耗:38.7MB
class Solution {
public void moveZeroes(int[] nums) {
//记录非零个数
int j = 0;
for(int i = 0; i < nums.length; i++){
//非零前移
if (nums[i] != 0){
nums[j] = nums[i];
//移动后,原位置置零
if (i != j){
nums[i] = 0;
}
//非零个数增加
j++;
}
}
}
}
解法二
时间复杂度:O(N)
空间复杂度:O(1)
执行耗时:0ms
内存消耗:38.8MB
class Solution {
public void moveZeroes(int[] nums) {
//记录非零个数
int notNum0 = 0;
//非零前移
for (int i = 0;i<nums.length;i++){
if (nums[i]!=0){
nums[notNum0++]=nums[i];
}
}
//后面 nums.length-notNUm0 个为零
for (int j=notNum0;j<nums.length;j++){
nums[j]=0;
}
}
}
一文一哲理
人这一辈子,怎么都是过,与其皱眉头,不如偷着乐