Leetcode Move Zeroes
2015-09-23 00:46
423 查看
Given an array
For example, given
Note:
You must do this in-place without making a copy of the array.
Minimize the total number of operations.
算法步骤:x = i y = j
使用两个"指针"x和y,初始令y = 0
利用x遍历数组nums:
若nums[x]非0,则交换nums[x]与nums[y],并令y+1
算法简析:
y指针指向首个0元素可能存在的位置
遍历过程中,算法确保[y, x)范围内的元素均为0
Java code
Reference:
1. http://bookshadow.com/weblog/2015/09/19/leetcode-move-zeroes/
2. https://leetcode.com/discuss/59543/move-zeros-solution-in-java
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,
numsshould 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.
解题思路:
题目可以在O(n)时间复杂度内求解算法步骤:x = i y = j
使用两个"指针"x和y,初始令y = 0
利用x遍历数组nums:
若nums[x]非0,则交换nums[x]与nums[y],并令y+1
算法简析:
y指针指向首个0元素可能存在的位置
遍历过程中,算法确保[y, x)范围内的元素均为0
Java code
public void moveZeroes(int[] nums) { int i = 0, j = 0; for(i = 0; i< nums.length; i++){ if(nums[i] != 0){ if(j != i){ nums[j] = nums[i]; nums[i] = 0; } j++; } } }
Reference:
1. http://bookshadow.com/weblog/2015/09/19/leetcode-move-zeroes/
2. https://leetcode.com/discuss/59543/move-zeros-solution-in-java
相关文章推荐
- Shell 常用命令总结
- Using a Comparison Function for the Key Type
- POJ 1719 Shooting Contest 二分匹配
- C++ STL之stack queue 作者csdn账号 liuhmmjj
- java反射机制
- Nginx配置文件nginx.conf中文详解(总结)
- Hadoop家族
- mac jdk 6设置
- const常量和#define宏常量的区别
- 关于规划的寓言故事:把一张纸折叠51次 ------意义不在折纸,而在规划,重在规划!!!
- MAC 如何在MAC系统中保存txt格式文本
- 进程监控程序的开发(程序运行监控)
- HDU_3667_Transportation(最小费用流)
- JavaScript----数字转换字符串&字符串转发数字
- (奶油小刀插件) android-butterknife-zelezny 插件使用
- Android 网络编程
- CentOS 6 使用 yum 安装MongoDB及服务器端配置
- spfa算法
- 自定义的一个分页类
- 【UIKit-124-3】#import <UIKit/UIView.h>