当前位置: 首页 > news >正文

网站建设服务采购方案惠阳网站优化

网站建设服务采购方案,惠阳网站优化,适合小县城开的加盟店,哪里有网站做爰视频题目描述 给定一个数组&#xff0c;实现一个算法将数组中的所有 0 移动到末尾,但不可改变非 0 数字的相对位置。介绍如下&#xff1a; 例如数组为 [0, 1, 0, 3, 12]&#xff0c;将所有 0 移动到末尾的结果为 [1, 3, 12, 0, 0]。 输入描述 第一行输入一个数字 N (1<N<…

题目描述

给定一个数组,实现一个算法将数组中的所有 0 移动到末尾,但不可改变非 0 数字的相对位置。介绍如下:

  • 例如数组为 [0, 1, 0, 3, 12],将所有 0 移动到末尾的结果为 [1, 3, 12, 0, 0]。

输入描述

第一行输入一个数字 N (1<N<1000)N (1<N<1000),为数组的长度。

第二行输入数组的元素 AiAi​,0<Ai<10000<Ai​<1000。

输出描述

输出一行,为移动后数组。

输入输出样例

示例

输入

5
0 1 0 3 12

输出

1 3 12 0 0

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

方法一(推荐):用一种双指针的思维去从头开始填充数组

#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码int n;cin >> n;int arr[n];for (int i = 0; i < n; i++)cin >> arr[i];//以后碰到这种移位的题目,统一用双指针,先用一个指针,把所有非0的数字往前移,再从指针的位置补上0int j = 0;for (int i = 0; i < n; i++) //j作为判断的指针{if (arr[i]) arr[j++] = arr[i];}while(j < n) arr[j++] = 0;for (int i = 0; i < n; i++)cout << arr[i] << " ";return 0;
}

方法二:遇到就输出

既然我们要保存非0的相对位置不变,但又需要把0全放在后面,那我们不妨遍历一遍数组,碰到非0的数字就输出,在这过程中计数,最后把0的数目输出出来

#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码int n;cin >> n;int arr[n];int cnt = 0;for (int i = 0; i < n; i++)//读入cin >> arr[i];for(int i = 0; i < n; i++)//碰到就输出{if (arr[i]) {cout << arr[i] << " ";cnt++;}}while(cnt < n)//把0补全{cout << 0 << " ";cnt++;}return 0;
}

方法三(不推荐):遇到0的时候将0移动到最后一位,并且将所有数字往前移动一格

这种方法对性能的开销大,因为要移动数组,数组如果很大就不好了,当然对于这道题数字很小,可以这么做。这种方法有一个值得注意的点,就是当0连续存在的时候,你需要做一些保守的判断,不然会遗漏掉0.

#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码int n;cin >> n;int arr[n];int cnt = 0;  //统计0出现了多少次for (int i = 0; i < n; i++)//读入cin >> arr[i];for (int i = 0; i < n - cnt; i++) //这里i要走过n-cnt个,把0排除掉,不然进入死循环{if (arr[i] == 0) {for (int j = i; j < n - 1; j++) {arr[j] = arr[j + 1];}arr[n - 1] = 0;i--;  //i--很重要,这是一个保守判断,排除有连续的0的情况cnt++;  //这里cnt是标记0的个数}}for (int i = 0; i < n; i++)cout << arr[i] << " ";return 0;
}

这里如果搞不明白为什么i--有这个作用,可以看我的另一篇题解,里面有详细解释i--的作用

PTA习题8-6删除字符(20分)(两种思路)_本题要求实现一个删除字符串中的指定字符的简单函数。-CSDN博客

http://www.dtcms.com/a/454137.html

相关文章:

  • Python 学习(2) ---- Python 数据类型
  • 三更app下载网站衡阳网站设计
  • 语言结构的基本单位:语素、词根与词缀
  • 线程邮箱(1)
  • 【深入理解计算机系统第3版】浮点数舍入和在不同位模式下的变换2.52
  • 有了域名和空间怎么做网站网站怎么做下拉刷新
  • 【完整源码+数据集+部署教程】 水果叶片分割系统: yolov8-seg-dyhead
  • 前端如何做双语网站wordpress缓存插件汉化破解版
  • Python回调函数中携带额外状态的完整指南:从基础到高级实践
  • 郑州的设计公司企业网站建设推荐乐云seo
  • OpenAI 推出 ChatGPT 应用系统,开发者可在平台内构建互动式应用
  • 【Coze】1.Coze 的基本介绍
  • 字符串比较函数strcmp和strncmp以及memcmp详解与对比分析
  • linux练习-2
  • 大连做网站首选领超科技35互联做的网站
  • 国庆科技感祝福:Python 粒子国旗动画
  • 厦门微信网站开发潮州汕头
  • SSH隧道技术详解:从本地端口转发到实战应用
  • 西宁微网站建设电商网名大全
  • 网站多少钱一米无锡市住房建设局网站
  • 做自己网站做站长女的和男的做那个视频网站
  • 东莞网站维护wordpress调用分类链接
  • 贵阳网站建设包首页钦州建站哪家好
  • excel 表格 做的网站wordpress+qq音乐插件
  • 安阳七彩祥云网络公司seo人员的职责
  • k8s面试题
  • 齐齐哈尔建设局网站中卫 网红打卡地
  • 【完整源码+数据集+部署教程】 水道图像分割系统: yolov8-seg-EfficientHead
  • 做手机网站用什么网站互动性
  • 南宁市做公司网站个人工作室和公司的区别