leetcode--Move Zeroes
来源:互联网 发布:软件打不开的原因 编辑:程序博客网 时间:2024/06/05 15:16
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].
Note:
You must do this in-place without making a copy of the array.
Minimize the total number of operations.
解题思路:把非零元素向前移动,把零元素向后移动,最后把移动后的元素置零。
package leedcode;public class test { public static void moveZeroes(int[] nums) { int counter = 0;//非零元素的个数(初始化) for (int i = 0; i < nums.length; i++) { if (nums[i] == 0) { counter++;//非零元素的个数加一 continue; } else { nums[i - counter] = nums[i];//把非零元素移位,关键的一步 continue; } } //把最后几位置为0 for (int i = nums.length - counter; i < nums.length; i++) { nums[i] = 0; } } // 主方法 public static void main(String[] args) { int[] s = { 1, 2, 0,3, 1, 2 }; moveZeroes(s); for(int i=0;i<s.length;i++){ System.out.println(s[i]); } }}
java版本二
package arrayTest;/** * 将0元素移到最后,非零元素的相对位置不变。使用的是双指针,一个读取非零元素,另一个负责存储非零元素,最后将后面的元素置零 * @author duola * */public class moveZerosToLAst { public static void moveZeroes(int[] nums) { int i=0,j=0; for(;i<nums.length;i++){ if(nums[i]!=0){ nums[j]=nums[i]; j++; } } for(;j<nums.length;j++){ nums[j]=0; } } public static void main(String[] args) { int[] a = { 0, 1, 3, 4, 0, 3, 0, 2 }; moveZeroes(a); for (int i = 0; i < a.length; i++) { System.out.print(a[i]); } }}
1 0
- leetcode 283: Move Zeroes
- leetcode - Move Zeroes
- Leetcode: Move Zeroes
- LeetCode - Move Zeroes
- LeetCode-Move Zeroes
- [LeetCode]Move Zeroes
- leetcode-283-Move Zeroes
- [leetcode 283]Move Zeroes
- LeetCode---Move Zeroes
- LeetCode 283----Move Zeroes
- LeetCode Move Zeroes
- LeetCode Move Zeroes
- Leetcode #283 Move Zeroes
- leetcode: (283) Move Zeroes
- [LeetCode 283] Move Zeroes
- 【LeetCode】Move Zeroes
- LeetCode-Move Zeroes
- [LeetCode] Move Zeroes
- js动态创建元素以及设置属性
- 查看端口对应的进程命令
- C# 字符串取文件名
- android 热修复 HotFix 混淆apk生成patch包方案
- 基础控件属性及方法整理 --> UIButton
- leetcode--Move Zeroes
- Android —— 依赖注入LayoutCreator
- android GPS定位两点间距离
- Android 打造底部导航控件
- new 和malloc的区别
- 哪些规则很重要,但却是99%职场人都不知道的?
- ListView做一个简单的物价条
- TCP保活(TCP Keep alive)
- DbUtils的使用