博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
283 Move Zeroes[EASY BUT WORTH REVIEWING]
阅读量:6880 次
发布时间:2019-06-27

本文共 911 字,大约阅读时间需要 3 分钟。

真的,我真的想不通为什么简书不提供标签功能了。。如果有标签,这文章题目就不会这么长,分专题的时候也会容易很多。真的很气。

这题我固定思维了,用了O(n2)的双指针。但我第一遍写竟然忘了加continue,导致非0数字都倒过来排序了。。。

O(n2)

public void moveZeroes(int[] nums) {        for(int i = 0 ; i < nums.length ; i ++){            if(nums[i] == 0){                for(int j = i + 1 ; j < nums.length ; j ++){                    if(nums[j]!=0){                        int tmp = nums[j];                        nums[j] = nums[i];                        nums[i] = tmp;                        break;                    }                }            }        }    }复制代码

O(n)

O(n)解法比较6,利用了0是重复的这一点:

public void moveZeroes(int[] nums) {    if (nums == null || nums.length == 0) return;            int insertPos = 0;    for (int num: nums) {        if (num != 0) nums[insertPos++] = num;    }            while (insertPos < nums.length) {        nums[insertPos++] = 0;    }}复制代码

转载于:https://juejin.im/post/5a313422f265da432b4ad281

你可能感兴趣的文章
lvs规则条目保存(keepalive作HA)
查看>>
宽字节(宽字符)注入
查看>>
python类的私有变量
查看>>
Linux基础知识---计划任务
查看>>
Ceph集群块设备使用-创建和使用OSD
查看>>
大数据||hadoop分布式集群安装
查看>>
华为设备默认console密码
查看>>
wxWidgets第四课 EVT_LEFT_UP关联鼠标弹起事件不生效
查看>>
【故障解决】ORA-06502错误解决
查看>>
Linux中./configure,make,make install的作用
查看>>
如何使用Docker、Docker-Compose和Rancher搭建部署Pipeline(四)
查看>>
Pinger2
查看>>
SQL Server 2014如何提升非在线的在线操作
查看>>
ASP.NET中模拟管理员用户提升权限
查看>>
beego3---gohttp底层实现
查看>>
二叉树
查看>>
.net framework3.5新特性1:Lambda表达式
查看>>
对Kalman(卡尔曼)滤波器的理解@@zz
查看>>
sybase备份与恢复及sybase常用语句
查看>>
EBS Concurrent Manager(并发管理器)异常处理
查看>>