Move Zeroes

题目描述:

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.
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.

Subscribe to see which companies asked this question

思路:

说实话。刚看到有点头大,后面尝试写,思路是遍历每一个元素,如果是0,就把后面的元素往前移动一个,然后把零移到后面。

注意:在循环的时候,不要急着对循环变量加1,先判断移动后,是不是0.如果是零,接着移动,不加1.还有每次移动,都把后面就加一个 零,设置一个变量count技术,后面循环n = n - count

代码:

public class Solution {
    public void moveZeroes(int[] nums) {
        int n = nums.length;
        //用来后面减去移动次数的计数
        int num = n;
        int i = 0;
        while(i < num){
            if(nums[i] == 0){
                int last = nums[i];
                for(int a = i;a < n-1;a++){
                    nums[a] = nums[a+1];
                }
                nums[n-1] = last;
            }
            if(nums[i] != 0){
            //如果不是零,才往后加1
                i = i+1;
            }else{
            //减去移动次数,与因为后面都是零
                num = num-1;
            }
        }
    }
}

最新文章

  1. php的memcache安装,在window10下面
  2. Android 手机卫士--是否有密码区分对话框类型
  3. Java实验四
  4. codeforces 700A As Fast As Possible 二分求和?我觉得直接解更好
  5. java 计算地球上两点间距离
  6. git之https或http方式设置记住用户名和密码的方法
  7. 关于async
  8. Html-input文本框只能输入数字
  9. Chrome开发者工具不完全指南
  10. id class
  11. 使用VC++通过远程进程注入来实现HOOK指定进程的某个API
  12. android http同步请求
  13. [CSS3] 学习笔记-HTML与CSS简单页面效果实例
  14. SQL Server2008安装教程
  15. 关于使用栈将一般运算式翻译为后缀表达式并实现三级运算的方法及实例(cpp版)
  16. redis 系列27 Cluster高可用 (2)
  17. dsu on tree入门
  18. idea导出可执行jar包
  19. Java - Selenium 环境配置
  20. T Y P E L I B R A R I E S库加载

热门文章

  1. EBS各个应用简称
  2. 你知道RxJava也可以实现AsyncTask吗?
  3. antlr v4 使用指南连载4——词法规则入门之黄金定律
  4. malloc、calloc、relloc
  5. (九十七)集成JPush实现远程通知和推送的发送
  6. Dynamics CRM 在报表中获取当前登陆用户的guid
  7. 使用UE4/Unity创建VR项目
  8. 多态原理探究-从C++编译器角度理解多态的实现原理
  9. CCDrawNode类的引用
  10. iOS中 FMDB第三方SQLite数据库 UI_20