leetcode题解-283. Move Zeroes
来源:互联网 发布:考研单词背诵软件 编辑:程序博客网 时间:2024/06/05 02:46
题目:
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.
本题是要将一个数组中的0移到末尾去。有两种思路,一种是将非零元素直接向前提,另外一种是将零与非零元素交换位置。方法一需要使用一个变量记录非零元素的个数,方便将非零元素查到指定位置,并且在最后对数组最后几个元素进行置零操作。代码入下:
public void moveZeroes1(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; } }
方法二是将非零元素搬移到指定元素位置,并将二者进行置换。这样的好处是免去了最后的置零操作,但是也增加了元素置换的操作==代码入下;
public void moveZeroes2(int[] nums) { int j = 0; for(int i = 0; i < nums.length; i++) { if(nums[i] != 0) { int temp = nums[j]; nums[j] = nums[i]; nums[i] = temp; j++; } } }
0 0
- Leetcode题解 283. Move Zeroes
- leetcode题解-283. Move Zeroes
- LeetCode题解:Move Zeroes
- LeetCode题解:Move Zeroes
- LeetCode 283. Move Zeroes 题解(C++)
- LeetCode 题解(214) : Move Zeroes
- LeetCode 283 Move Zeroes题解
- 【LeetCode】283. Move Zeroes
- Leetcode 283. Move Zeroes
- LeetCode #283. Move Zeroes
- 283. Move Zeroes LeetCode
- LeetCode 283. Move Zeroes
- LeetCode 283. Move Zeroes
- LeetCode 283. Move Zeroes
- 【LeetCode】283. Move Zeroes
- leetcode 283. Move Zeroes
- leetcode 283. Move Zeroes
- LeetCode 283. Move Zeroes
- git Commit message 和 Change log 编写指南
- iOS 开发的宝贝资源
- 简单了解RxJava的源码
- 【HTML】第一个网页
- easyUI combobox 文本框模糊搜索问题
- leetcode题解-283. Move Zeroes
- R语言向量_常用的向量运算
- ZOJ 3607 Lazier Salesgirl (贪心,模拟)
- ASP.NET网站中Excel访问拒绝
- 关于 WebBroker 无法读到 Request.ContentFields.Values['AName'] 内容的问题
- Laravel邮件发送
- R语言向量_使用all()和any()
- C++中关于Windows窗口句柄的相关接口
- Git1--git是什么[开源版本控制系统;软件配置管理工具]