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

移动零--双指针

 双指针,把非零移动到前面,后面改为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;

}

相关文章:

  • 【Java ee初阶】网络原理
  • P1725 琪露诺
  • 代码随想录第41天:图论2(岛屿系列)
  • PPT图表怎么制作?说5款自己使用过的PPT图表制作工具
  • 遗传算法组卷系统实现(Java版)
  • Web 架构之容灾方案深度解析
  • ThinkPad T440P如何从U盘安装Ubuntu24.04系统
  • Cadence学习笔记之---导入PCB板框、网表
  • 贪心算法专题(Part2)
  • 简述Web和HTTP
  • 机器学习 day02
  • 【OpenCV】imread函数的简单分析
  • 计算机网络基础科普
  • 学习黑客了解Python3的“HTTPServer“
  • 社区商城分销合作合规承诺书
  • MacOS 用brew 安装、配置、启动Redis
  • Jsp技术入门指南【十二】自定义标签
  • Laravel 安全:批量赋值 fillable 与 guarded
  • leetcode-hot-100(哈希)
  • 操作系统学习笔记第2章 (竟成)
  • 国家出口管制工作协调机制办公室部署开展打击战略矿产走私出口专项行动
  • 东洋学人|滨田青陵:近代日本考古学第一人
  • 上海交大:关注到对教师邵某的网络举报,已成立专班开展调查
  • 习近平同俄罗斯总统普京会谈
  • 硅料巨亏后弘元绿能割肉求生:逾12亿元内蒙古公司股权转让协鑫
  • 国防部:奉劝有关国家不要引狼入室,甘当棋子