zoukankan      html  css  js  c++  java
  • LeetCode 283. 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:

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

    题目标签:Array, Two Pointers

      题目给了我们一个nums array, 让我们把所有的0 都移动到最后面,保留其他数字的排序。

      利用two pointers p1 和 p2, 基本思想是让p2停留在0的数字上,让p1找到不是0的数字,对换p1 p2的值。

      遍历nums array,当遇到0的话,p1++;当遇到不是0的数字,对换p1 和 p2的值,p1++ p2++。

    Java Solution:

    Runtime beats 74.14% 

    完成日期:04/27/2017

    关键词:Array, Two Pointers

    关键点:找到不是0的数字,与0置换

     1 public class Solution 
     2 {
     3     public void moveZeroes(int[] nums) 
     4     {
     5         int p1 = 0; // iterate each number
     6         int p2 = 0; // stop at 0 
     7         
     8         while(p1 < nums.length)
     9         {
    10             if(nums[p1] != 0) // find the non-zero number
    11             {
    12                 if(p1 != p2) // swap non-zero number with zero number 
    13                 {             // if p1 = p2, no need to swap
    14                     int temp = nums[p1];
    15                     nums[p1] = nums[p2];
    16                     nums[p2] = temp;
    17                 }
    18                 
    19                 p2++;
    20             }
    21             
    22             p1++;
    23         }
    24 
    25     }
    26 }

    参考资料:N/A

    LeetCode 算法题目列表 - LeetCode Algorithms Questions List

  • 相关阅读:
    苹果开发者账号证书、授权配置文件设置流程
    JQuery 总结(1) 选择器的使用
    PC和移动端自动识别
    前端获取ip的接口
    AJAX 跨域解决办法
    linux
    复制剪切板实现
    css animation 制作打开动画效果
    弹出层播放视频
    盛世龙图项目总结
  • 原文地址:https://www.cnblogs.com/jimmycheng/p/7503105.html
Copyright © 2011-2022 走看看