刷题笔记(数组)-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的主要内容,如果未能解决你的问题,请参考以下文章

刷题笔记(数组)-03

算法通关手册 刷题笔记2 数组排序之冒泡排序选择排序

[AI助力] 算法通关手册 刷题笔记2 数组排序之冒泡排序选择排序

LeetCode刷题笔记-动态规划-day6

LeetCode刷题笔记-动态规划-day6

LeetCode刷题笔记-动态规划-day6