力扣283.移动零

283. 移动零 - 力扣(LeetCode)

        题目要求是在不复制数组的情况下对原数组进行操作

        为了保持非0元素的相对顺序,我们肯定选择从头到尾遍历,把不是0的元素往前提,如果是0或者不是0我们都可以记录(二选一),最后我们补上0的个数即可

        对于某一个不是0的元素,如果他是第n个不是0的元素,那么可以把他放到索引为n-1的地方,这样可以保证按照顺序来。其实这也是一个小小的递推:第n个都是这样,那第n-1个,第n-2个…第3个,第2个都是这样,那么就可以保证保持非0元素的相对顺序而且目前数组中不出现0元素了

        我们记录下非0元素的个数flag,根据数组的长度,把其余元素的值赋为0即可

AC代码如下:

int flag = 0;
for (int i = 0; i < nums.size(); ++ i) {
    if (nums[i] != 0) {
        flag ++;
        nums[flag - 1] = nums[i];
    }
    
}
if (flag > 0) {
    for (int i = flag; i < nums.size(); ++ i) {
        nums[i] = 0;
    }
}

相关推荐

  1. 283.移动

    2024-02-07 08:50:01       55 阅读
  2. -283. 移动

    2024-02-07 08:50:01       46 阅读
  3. 283. 移动

    2024-02-07 08:50:01       31 阅读
  4. 283.移动

    2024-02-07 08:50:01       19 阅读
  5. 283.移动LeetCode)

    2024-02-07 08:50:01       53 阅读
  6. 热题100_双指针_283_移动

    2024-02-07 08:50:01       59 阅读
  7. 283题:移动(快慢指针)

    2024-02-07 08:50:01       34 阅读
  8. 100】4.移动

    2024-02-07 08:50:01       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-07 08:50:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-07 08:50:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-07 08:50:01       82 阅读
  4. Python语言-面向对象

    2024-02-07 08:50:01       91 阅读

热门阅读

  1. css基础

    css基础

    2024-02-07 08:50:01      53 阅读
  2. 2024年笔记--centos docker离线安装启动失败

    2024-02-07 08:50:01       56 阅读
  3. 10分钟快速入门正则表达式

    2024-02-07 08:50:01       48 阅读
  4. 【leetcode】1512. 好数对的数目(简单)题解学习

    2024-02-07 08:50:01       55 阅读
  5. 【C/C++】基本数据类型—数组、指针和引用

    2024-02-07 08:50:01       43 阅读