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

移动零--双指针

 双指针,把非零移动到前面,后面改为0

#include <iostream>

#include <vector>

using namespace std;

int main(){

    int n;

    cin>>n;

    vector<int> nums(n);

    for (int i=0;i<n;i++) cin>>nums[i];

先动i,如果i的值不等于0,把i移到前面的j,j代表该把下一个非 0 放到哪里;

    int j=0;

    for(int i=0;i<n;i++){

    if(nums[i]!=0) {

    nums[j]=nums[i];

    j++;

   }}

j代表在前面放了几个非零的数,在数组中由nums[j]开始往后改写为0.

   for(int k=j;k<n;k++) nums[k]=0;

    for(int i=0;i<n;i++) cout<<nums[i]<<" ";

   

    return 0;

}

http://www.xdnf.cn/news/5228.html

相关文章:

  • Docker 使用总结及完整示例介绍
  • 【天府诸葛杯】九天画芯 FSHD 三色光源技术晋级复赛:突围下一代底层显示技术
  • 数仓-如何保障指标的一致性
  • MySQL 索引和事务
  • 电子电路:光子是不是粒子?
  • 基于OpenCV的人脸识别:FisherFaceRecognizer算法
  • SolidWork-2023 鼠標工程
  • Java集合
  • Qt中的RCC
  • 如何避免在CMD中分段发送问题导致大模型多段回复的问题?
  • Day115 | 灵神 | 二叉树 | 二叉搜索树中的众数
  • Redis 哨兵
  • DIP依赖倒置原则
  • 第十课认识约数
  • 蓝牙身份证阅读器使用Uniapp调用二次开发demo
  • 逆向学习笔记(代码)
  • Linux `uptime` 指令详解与系统监控指南
  • 计算机体系结构一些笔记
  • C++中的继承与多态
  • 【Redis进阶】持久化
  • SpringMVC面试内容
  • 【无标题】I/O复用(epoll)三者区别▲
  • JS DOM操作与事件处理从入门到实践
  • 无线网络设备中AP和AC是什么?有什么区别?
  • 从零开始实现YOLOv8示例
  • 线性表-顺序表(Sequential List)
  • 【vue】vuex实现组件间数据共享 vuex模块化编码 网络请求
  • GRU网络详解
  • 解决使用宝塔Linux部署前后端分离项目遇到的问题
  • 第三章 Freertos智能小车遥控控制