当前位置: 首页 > article >正文

【双指针】283. 移动零

题目
两种方法时间复杂度相同都是O(n),方法2操作更少一些

1.解法1: 有优化空间

class Solution {
    public void moveZeroes(int[] nums) {
        int slow = 0, fast = 0;
        while (fast < nums.length) {
            if (nums[fast] != 0) {
                if (slow == fast) {
                    ++slow;
                    ++fast;
                } else {
                    nums[slow++] = nums[fast++];
                }
            } else {
                ++fast;
            }
        }
        while (slow < nums.length) {
            nums[slow++] = 0;
        }
    }
}

解法2:最佳写法

class Solution {
    public void moveZeroes(int[] nums) {
        int slow = 0, fast = 0;
        while (fast < nums.length) {
            if (nums[fast] != 0) {
                if (nums[slow] != 0) {
                    ++slow;
                    ++fast;
                } else {
                    nums[slow++] = nums[fast];
                    nums[fast++] = 0;
                }
            } else {
                ++fast;
            }
        }
    }
}

http://www.kler.cn/news/154964.html

相关文章:

  • 内网穿透工具获取一个公网ip
  • 提高wordpress网站收录速度,设置wp后台的“更新服务”功能
  • 【经验总结】网络关闭但ECU没有休眠前如何网络唤醒
  • Java 使用zxing生成二维码
  • Mybatis实用教程之XML实现动态sql
  • springboot教师进修培训管理系统设计与实现java+jsp
  • PX4 Bug汇总
  • 【Python百练——第3练】矩形类及操作
  • 创建内存泄漏(js的问题)
  • 深入Os--静态链接
  • RabbitMQ 笔记
  • C#拼夕夕自动化登录,电商网页自动化操作。WebView2
  • CSS 选择器优先级,!important 也会被覆盖?
  • 堆排序算法
  • 选股的重要性、考虑的因素
  • MySQL-视图
  • 【学习笔记】GAN实战(基础)
  • 动态规划学习——回文串
  • day4 找到两个链表的交点
  • 用友U8 ERP和面粉行业专版系统接口集成方案
  • 国产AI边缘计算盒子,双核心A55丨2.5Tops算力
  • 怎么用SSH远程连接Ubuntu服务器
  • 【Unity动画】状态机添加参数控制动画切换(Animator Controller)
  • C# WPF上位机开发(计算器界面设计)
  • Oracle连接和使用
  • Java高级技术-反射
  • 02_线程通信与线程池
  • H265、VP9、AV1视频编码器性能对比
  • 22.Oracle中的临时表空间
  • 短线买入卖出有哪些交易技巧?