zoukankan      html  css  js  c++  java
  • LeetCode 283. 移动零(C#实现)——数组

    一、问题

    https://leetcode-cn.com/problems/move-zeroes/

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
    
    示例:
    
    输入: [0,1,0,3,12]
    输出: [1,3,12,0,0]
    
    说明:
    
        必须在原数组上操作,不能拷贝额外的数组。
        尽量减少操作次数。

    二、GitHub实现:https://github.com/JonathanZxxxx/LeetCode/blob/master/MoveZeroesClass.cs‘’

      Blog:https://www.cnblogs.com/zxxxx/

    三、思路

      index标识非零的个数,循环遍历数组;如果不是0,就将非零的值移到index位,index加一;遍历结束后,再次遍历,index后的位置都为0

      优化思路:不需要第二次遍历,第一次遍历数组时判断下标是否等于index,不等于就将当前值置为零

    四、代码实现

        public class MoveZeroesClass
        {
            public void MoveZeroes(int[] nums)
            {
                if (nums == null || nums.Length == 0) return;
                //非零个数
                var count = 0;
                for (int i = 0; i < nums.Length; i++)
                {
                    //非零值移到当前指针位置
                    if (nums[i] != 0)
                    {
                        nums[count] = nums[i];
                        count++;
                    }
                }
                //当前指针位置后都为0
                for (int i = count; i < nums.Length; i++)
                {
                    nums[i] = 0;
                }
            }
    
            public void MoveZeroes2(int[] nums)
            {
                if (nums == null || nums.Length == 0) return;
                var current = 0;
                for (int i = 0; i < nums.Length; i++)
                {
                    if (nums[i] != 0)
                    {
                        nums[current] = nums[i];
                        //num[i]值置0
                        if (current != i)
                        {
                            nums[i] = 0;
                        }
                        current++;
                    }
                }
            }
        }
  • 相关阅读:
    决策树
    训练/测试
    机器学习 标准差
    pandas01
    提交参数说明
    pandas_series02
    Yarn 模式
    词云图
    软件需求与分析课堂综合测试
    课堂测试10
  • 原文地址:https://www.cnblogs.com/zxxxx/p/12206304.html
Copyright © 2011-2022 走看看