博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 283. Move Zeroes
阅读量:6092 次
发布时间:2019-06-20

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

问题:

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:

    1. You must do this in-place without making a copy of the array.
    2. Minimize the total number of operations.

       

分析:

 

双指针。 这一问题的一个中间步骤,应该是前m个数有序, 中间是n个0, 最后l个数无序。 第一个指针指向第一个0,第二个指针指向l个无序数中的第一个。

当后个指针指向最后一个数的后一个位置时,所有步骤结束。

 

class Solution {    public void moveZeroes(int[] nums) {                for(int i =0, j=0; j<=nums.length; j++) {            if(nums[j] == 0) {                                continue;            } else {                nums[i] = nums[j];                i++;                nums[j] = 0;            }        }    }}

 

 

结果:

Run Code Status: Runtime ErrorRun Code Result:Your input[0,1,0,3,12]Your answerException in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5    at Solution.moveZeroes(Solution.java:5)    at __DriverSolution__.__helper__(__Driver__.java:8)    at __Driver__.main(__Driver__.java:52)

 

分析:

 

 

二次:

class Solution {    public void moveZeroes(int[] nums) {                for(int i =0, j=0; j

 

结果:

Submission Result: Wrong Answer  Input: [1]Output: [0]Expected: [1]

 

 

 

分析:

 还是不能直接赋值0.

 

三次:

class Solution {    public void moveZeroes(int[] nums) {                int temp;        for(int i =0, j=0; j

 

 

结果:

 

 

总结:

 

注意边界条件。

 

转载于:https://www.cnblogs.com/hzg1981/p/8869995.html

你可能感兴趣的文章
Maximal Rectangle
查看>>
windows下如何修改远程登录端口
查看>>
UVA 10603 Fill
查看>>
初学WebGL引擎-BabylonJS:第1篇-基础构造
查看>>
面向对象
查看>>
操作系统
查看>>
组策略链接顺序优先级
查看>>
安卓作业4.6
查看>>
20135306黄韧 第八章学习总结
查看>>
项目杂记——超链接里传参
查看>>
How to copy the contents of std::vector to c-style static array,safely?
查看>>
对thinkphp5.0框架的实例学习
查看>>
xml解析 DOM(JAXP Crimson解析器)
查看>>
code mistake
查看>>
c#与SQL中 double 与 float
查看>>
类样式操作
查看>>
SQL中的连接可以分为内连接,外连接,以及交叉连接 。
查看>>
请把我风干成你的回忆
查看>>
Python&HDF5目录
查看>>
Vue -- 双向过滤器去除html标签
查看>>