码迷,mamicode.com
首页 > 编程语言 > 详细

数组--Leetcode283

时间:2017-12-31 14:10:28      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:length   leetcode   log   nbsp   lin   example   function   nts   相对   

题目

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]

给定一个数组,写一个函数,将数组中的所有0挪到数组的末尾,而维持其他所有非0元素的相对位置.举例 input:[0,1,0,3,12] output:[1,3,12,0,0]

代码

 方法一:

   public static void moveZeroes(int[] nums) {
        int[] nonZeroElements = new int[nums.length];
        int count = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != 0) {
                nonZeroElements[count] = nums[i];
                count++;
            }
        }
        for (int i = count; i < nums.length; i++) {
            nonZeroElements[count] = 0;
            count++;
        }
        for (int i = 0; i < nums.length; i++) {
            nums[i] = nonZeroElements[i];
        }
    }

  

方法二:

   public static void moveZeroes(int[] nums) {
        int size = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] > 0) {
                nums[size] = nums[i];
                size++;
            }
        }
        for (int i = size; i < nums.length; i++) {
            nums[i] = 0;
        }
    }  

 

方法三:

   public static void moveZeroes3(int[] nums) {
        int k = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] > 0) {
                if (i != k) {   //如果数组中没有0,就不需要交换
                    swap(nums, i, k++);
                } else {
                    k++;
                }
            }
        }
    }

    public static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

  

 

数组--Leetcode283

标签:length   leetcode   log   nbsp   lin   example   function   nts   相对   

原文地址:https://www.cnblogs.com/Hangtutu/p/8157559.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!