283. Move Zeroes
来源:互联网 发布:卢武铉在韩国名声知乎 编辑:程序博客网 时间:2024/05/21 01:57
Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elements.
For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].
tips:英语读题有点失误,一开始以为非零的数字还要按从小到大排序(这种情况的时候我用快排去做了)。其实只要非零的数字按原来的顺序就可以
我的解法:冒泡排序 复杂度O(n^2)
(有点垃圾,因为最后提交发现审错题了心态有点炸,随便想了个排序),把0当气泡不断往上排,bouble算法。
public class Solution { public void moveZeroes(int[] nums) { for(int i = nums.length - 1; i > 0;i--) { for(int j = 0;j < i;j++) { if(nums[j] == 0){ nums[j] = nums[j+1]; nums[j+1] = 0; } } } }}
Top solution 时间复杂度O(n)
思想:定义一个索引insertPos = 0,遍历一次数组,遇到非零的数就执行nums[insertPos++] = nums[i]; 遍历完之后,数组insertPos之后的全填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; }}
0 0
- 283.Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- 【LeetCode】283. Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- Leetcode 283. Move Zeroes
- 283. Move Zeroes
- LeetCode #283. Move Zeroes
- 283. Move Zeroes LeetCode
- 283. Move Zeroes
- LeetCode 283. Move Zeroes
- LeetCode 283. Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- LeetCode 283. Move Zeroes
- Notepad++ Emmet执行时提示R6034 Runtime Error, 错误的解决方法
- 放苹果
- 关于为什么要用 if cv2.waitKey(1) & 0xFF == ord('q'): break的解释
- 三维坐标变换
- 关于-Objc -all_load -force_load的流言终结贴
- 283. Move Zeroes
- 简单I/O 与数据表示
- flex-basis
- 对布局对象及其子控件进行操作
- Java考试题之九
- C++ 练习
- 删除数据库
- web开发中如何另辟后台进程
- op精密检波和绝对值电路分析