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

  • 相关阅读:
    MVC ORM 架构
    Kubernetes 第八章 Pod 控制器
    Kubernetes 第七章 Configure Liveness and Readiness Probes
    Kubernetes 第六章 pod 资源对象
    Kubernetes 第五章 YAML
    Kubernetes 核心组件
    Kubernetes 架构原理
    Kubernetes 第四章 kubectl
    Kubernetes 第三章 kubeadm
    yum 配置及yum 源配置
  • 原文地址:https://www.cnblogs.com/jimmycheng/p/7503105.html
Copyright © 2011-2022 走看看