文章目录
移动零
题目地址:283. 移动零 - 力扣(LeetCode) (leetcode-cn.com)
思路:双指针,定义一个变量j,遍历数组中的元素,如果碰到元素不为0,且i!=j,索引i的值赋给j,索引i的元素初始化为0,j最后自增1
class Solution {
public void moveZeroes(int[] nums) {
int j=0;
for(int i=0;i<nums.length;i++){
if(nums[i]!=0){
if(i!=j){
nums[j]=nums[i];
nums[i]=0;
}
j++;
}
}
}
}
另个方法:遍历数组,如果元素不为0,定义一个临时变量,交换索引i和索引j的值,最后j自增1
class Solution {
public void moveZeroes(int[] nums) {
int j=0;
for(int i=0;i<nums.length;i++){
if(nums[i]!=0){
int temp=nums[j];
nums[j]=nums[i];
nums[i]=temp;
j++;
}
}
}
}
代码均由力扣编译器,提交通过,描述编写不当地方还请大家评论区指出💪!