zoukankan      html  css  js  c++  java
  • 移动零(力扣第283题)

    283.移动零

    ​ 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

    示例

    输入: [0,1,0,3,12]
    输出: [1,3,12,0,0]
    

    说明:

    1. 必须在原数组上操作,不能拷贝额外的数组。
    2. 尽量减少操作次数。

    解法:

    ​ 借助一个慢指针,该指针用于指向从最左端开始的非零子数组的最后一个元素的后一个元素,也就是下一个应该归入的非零元素的位置。每移动过来一个非零元素就向后移动一次。

    public void moveZeroes(int[] nums) {
    
        if (nums.length == 0 || nums == null){
            return;
        }
    
        int slow_index = 0;
        for (int i = 0; i < nums.length; i++) {
    
            if (nums[i] != 0){
                int temp = nums[slow_index];
                nums[slow_index] = nums[i];
                nums[i] = temp;
                slow_index++;
            }
    
        }
    }
    
  • 相关阅读:
    如何理解cat的输入输出重定向
    Vagrant网络设置
    Vagrant入门
    设计模式的原则
    单例模式
    LRU 实现缓存
    java注解
    java8---lambda表达式
    JUC--Callable 以及Lock同步锁
    JUC--闭锁 CountDownLatch
  • 原文地址:https://www.cnblogs.com/yxym2016/p/13998704.html
Copyright © 2011-2022 走看看