文章目录

  • 题目:移动数组中的零元素
      • 示例
    • 题目分析与解法
    • 代码实现
    • 测试如下
    • 算法复杂度分析

题目:移动数组中的零元素

给定一个数组nums,编写一个函数将所有的000移动到数组末尾,同时保持非零元素的想对顺序,要求不借助额外空间,在原数组的基础上进行操作。

示例

输入:nums = [0,1,0,3,12]
输出:[1,3,12,0,0]

题目分析与解法

使用双指针的方法,左指针指向当前已经处理好的序列的尾部,右指针指向待处理的序列的头部。 右指针不断往右移动,当右指针指向非零数时,将左右指针对应的数交换,同时把左指针向右移动。

代码实现

void Swap(int* a, int* b)
{int tmp = *a;*a = *b;*b = tmp;
}
void MoveZeroes(int* nums, int numsSize)
{int left = 0;int right = 0;while (right < numsSize){if (nums[right]){Swap(nums + left, nums + right);left++;}right++;}
}

测试如下

算法复杂度分析

时间复杂度:O(n)O(n)O(n),每个位置要被遍历两边,
空间复杂度:O(1)O(1)O(1) 只用到常数的几个变量,没有用到额外的空间

C语言每日一练---移动数组中的零元素相关推荐

  1. 6 获取数组中最小值_C语言每日一练8——数组中最大值和最小值

    题目: 利用指针函数,求某数组中的最大值和最小值. 实现代码: /* ================================================================= ...

  2. C语言每日一练——第81天:马克思手稿中的数学题

    C语言每日一练 2022年2月17日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 马克思手稿中有一道趣味数学问题:有30个人,其中有男人.女人和小孩,他们在同一家饭馆吃饭,总 ...

  3. C语言每日一练——第10天:求一个矩阵主对角线及副对角线元素之和

    C语言每日一练 2021年9月18日 题目描述 求一个矩阵主对角线及副对角线元素之和 分析 在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,矩阵是高等代数学中的常见工具,也常见于 ...

  4. C语言每日一练——第64天:自动发牌程序

    C语言每日一练 2021年12月7日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 一副扑克有52张牌,打桥牌时应将牌分给4个人.请设计一个程序完成自动发牌的工作.要求:黑桃用 ...

  5. C语言每日一练——第72天:打印杨辉三角(使用两种方法)

    C语言每日一练 2022年1月5日 文章目录 题目描述 问题分析 1. 使用数组法(打印直角三角) 2. 使用数组法(打印等腰三角) 3. 使用公式法(打印等腰三角) 网上参考 题目描述 打印杨辉三角 ...

  6. C语言每日一练——第63天:狼追兔子问题

    C语言每日一练 2021年12月2日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 一只兔子躲进了10个环形分布的洞中的一个.狼在第一个洞中没有找到兔子,就隔一个洞,到第3个洞 ...

  7. C语言每日一练——第8天:冒泡排序

    C语言每日一练 2021年9月16日 题目描述 用冒泡法对10个数排序 分析 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 它重复地走访过要排序的元素列,依次比较两个相 ...

  8. C语言每日一练——第73天:谁是窃贼问题

    C语言每日一练 202年1月8日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 警察审问4名窃贼嫌疑犯.现在已知,这4人当中仅有一名是窃贼,还知道这4个人中的每个人要么是诚实的 ...

  9. C语言每日一练——第35天:打印菱形

    C语言每日一练 2021年10月13日 题目描述 输入菱形的高度n(必须为奇数),即正中间星号的个数,打印出用星号组成的菱形 分析 要打印菱形,先要构想要打印的图形样子,就比如下图这种: 我们可以根据 ...

最新文章

  1. html转为pdf工具,wkhtmltopdf html转pdf工具的使用
  2. LPSTR, LPCSTR ,LPTSTR,LPCSTR,LPWSTR LPCWSTR
  3. What’s New in Entity Framework 4? API Changes(1)(转)
  4. liunx常用命令0
  5. iPad网页开发教程及规则
  6. C4D立体风格海报素材|电商万能套用BANNER是美工必收藏
  7. linux系统优化的方法
  8. CSV 文件中的字段中的开头和结尾上,可能会存在空格或制表符,但是该如何处理呢?
  9. 基于国产全志A40I的机器人示教器解决方案
  10. python读取nc文件并转换成csv_在Python3中读取crystal report.rpt文件并将其转换为.csv或.xlsx...
  11. Intel Cyclone 10 GX 收发器的时钟网络
  12. 神经网络之输出层设计
  13. (附源码)Springboot网上购物系统 毕业设计 311236
  14. Cadence学习篇(1) Cadence原理图工程以及原理图库的创建
  15. HDOJ--1000A + B Problem
  16. 改善脑力的70条方法[翻译]
  17. 【网络安全】逻辑漏洞保姆级讲解
  18. 预装Win 8.1 Pro环境下安装Win 7双系统
  19. CSS实现三栏布局的8种方式
  20. java网站架构设计

热门文章

  1. T40之小黑不能充电记
  2. 各个键盘按键KeyValue值
  3. [易飞]包材Forcast四周滚动需求
  4. forcast iframe 及 四款播放器
  5. android studio 2.2 preview4,Android Studio变黄了,2.2 Preview 4 发布
  6. 神经网络及其变种串联
  7. 【Windows】Win10如何使用注册表恢复Win7照片查看器?
  8. mysql按首字母查询_按照首字母搜索功能(mysql数据库执行语句)
  9. Java实现首字母大写
  10. Flask06_ORM多表