• 283. Move Zeroes


    package LeetCode_283
    
    /**
     * 283. Move Zeroes
     * https://leetcode.com/problems/move-zeroes/description/
     *
     * 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.
     *
    Example:
    Input: [0,1,0,3,12]
    Output: [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.
     * */
    class Solution {
        /*
        * solution: loop to check the element if 0 or not and use index to reset the position of element in array,
        * Time:O(n), Space:O(1)
        * */
        //algorithm 1: move zero to the end
        fun moveZeroes(nums: IntArray): Unit {
            var index = 0
            for (i in nums.indices) {
                if (nums[i] != 0) {
                    nums[index++] = nums[i]
                }
            }
            for (i in index until nums.size) {
                nums[i] = 0
            }
        }
    
        //algorithm 2: move zero to the front
        fun moveZeroesToFront(nums: IntArray): Unit {
            val n = nums.size - 1
            var index = nums.size - 1
            for (i in n downTo 0) {
                if (nums[i] != 0) {
                    nums[index--] = nums[i]
                }
            }
            for (i in index downTo 0) {
                nums[i] = 0
            }
        }
    }
  • 相关阅读:
    bzoj [POI2015]Myjnie
    bzoj2217 [Poi2011]Lollipop
    Codeforces A Mist of Florescence
    bzoj4380 [POI2015]Myjnie
    bzoj4292 [PA2015]Równanie
    bzoj 3517翻硬币
    模块补充
    python解释器
    __file__、__name__、__dict__方法整理
    软件开发规范
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13993481.html
Copyright © 2020-2023  润新知