当前位置: 首页 > 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/a/154964.html

相关文章:

  • 给阿里云OSS绑定域名并启用SSL
  • LeetCode面试经典150题C++实现,更新中
  • 【OpenEuler】配置虚拟ip
  • MySQL(5)【数据类型 —— 字符串类型】
  • 宗馥莉的接班挑战:内斗升级,竞品“偷家”
  • 云运维基础
  • 内网穿透工具获取一个公网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和面粉行业专版系统接口集成方案