C语言每日一练---移动数组中的零元素
文章目录
- 题目:移动数组中的零元素
- 示例
- 题目分析与解法
- 代码实现
- 测试如下
- 算法复杂度分析
题目:移动数组中的零元素
给定一个数组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语言每日一练---移动数组中的零元素相关推荐
- 6 获取数组中最小值_C语言每日一练8——数组中最大值和最小值
题目: 利用指针函数,求某数组中的最大值和最小值. 实现代码: /* ================================================================= ...
- C语言每日一练——第81天:马克思手稿中的数学题
C语言每日一练 2022年2月17日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 马克思手稿中有一道趣味数学问题:有30个人,其中有男人.女人和小孩,他们在同一家饭馆吃饭,总 ...
- C语言每日一练——第10天:求一个矩阵主对角线及副对角线元素之和
C语言每日一练 2021年9月18日 题目描述 求一个矩阵主对角线及副对角线元素之和 分析 在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,矩阵是高等代数学中的常见工具,也常见于 ...
- C语言每日一练——第64天:自动发牌程序
C语言每日一练 2021年12月7日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 一副扑克有52张牌,打桥牌时应将牌分给4个人.请设计一个程序完成自动发牌的工作.要求:黑桃用 ...
- C语言每日一练——第72天:打印杨辉三角(使用两种方法)
C语言每日一练 2022年1月5日 文章目录 题目描述 问题分析 1. 使用数组法(打印直角三角) 2. 使用数组法(打印等腰三角) 3. 使用公式法(打印等腰三角) 网上参考 题目描述 打印杨辉三角 ...
- C语言每日一练——第63天:狼追兔子问题
C语言每日一练 2021年12月2日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 一只兔子躲进了10个环形分布的洞中的一个.狼在第一个洞中没有找到兔子,就隔一个洞,到第3个洞 ...
- C语言每日一练——第8天:冒泡排序
C语言每日一练 2021年9月16日 题目描述 用冒泡法对10个数排序 分析 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 它重复地走访过要排序的元素列,依次比较两个相 ...
- C语言每日一练——第73天:谁是窃贼问题
C语言每日一练 202年1月8日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 警察审问4名窃贼嫌疑犯.现在已知,这4人当中仅有一名是窃贼,还知道这4个人中的每个人要么是诚实的 ...
- C语言每日一练——第35天:打印菱形
C语言每日一练 2021年10月13日 题目描述 输入菱形的高度n(必须为奇数),即正中间星号的个数,打印出用星号组成的菱形 分析 要打印菱形,先要构想要打印的图形样子,就比如下图这种: 我们可以根据 ...
最新文章
- html转为pdf工具,wkhtmltopdf html转pdf工具的使用
- LPSTR, LPCSTR ,LPTSTR,LPCSTR,LPWSTR LPCWSTR
- What’s New in Entity Framework 4? API Changes(1)(转)
- liunx常用命令0
- iPad网页开发教程及规则
- C4D立体风格海报素材|电商万能套用BANNER是美工必收藏
- linux系统优化的方法
- CSV 文件中的字段中的开头和结尾上,可能会存在空格或制表符,但是该如何处理呢?
- 基于国产全志A40I的机器人示教器解决方案
- python读取nc文件并转换成csv_在Python3中读取crystal report.rpt文件并将其转换为.csv或.xlsx...
- Intel Cyclone 10 GX 收发器的时钟网络
- 神经网络之输出层设计
- (附源码)Springboot网上购物系统 毕业设计 311236
- Cadence学习篇(1) Cadence原理图工程以及原理图库的创建
- HDOJ--1000A + B Problem
- 改善脑力的70条方法[翻译]
- 【网络安全】逻辑漏洞保姆级讲解
- 预装Win 8.1 Pro环境下安装Win 7双系统
- CSS实现三栏布局的8种方式
- java网站架构设计