刷题笔记(数组)-01
Posted 康小庄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷题笔记(数组)-01相关的知识,希望对你有一定的参考价值。
题目地址: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++;
}
}
}
}
代码均由力扣编译器,提交通过,描述编写不当地方还请大家评论区指出!
以上是关于刷题笔记(数组)-01的主要内容,如果未能解决你的问题,请参考以下文章