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

OJ题:移动零

双指针法

c 语言实现 

void moveZeroes(int* nums, int numsSize) {
    int dest,cur; //创建临时指针和目标指针
    dest=cur=0;//出初始化
    
    while(cur<numsSize)//遍历
    {
       if(nums[cur]!=0)
       {
        swap(&nums[cur],&nums[dest]);
        cur++;
        dest++;
       }
        else{
            cur++;
        }
    }
    
}

思路是建立两个指针,开始遍历,cur指针指向数据不为0就交换并且让cur++,dest++,为0就让cur++


0        1        0        3        12        为0只让cur++

dest

cur


1        0        0        3        12                        不为0交换二者,让cur++,dest++

        dest

                  cur


1        0        0        3        12                      为0让cur++

        dest

                   cur         


1        3        0        0        12                不为0就交换再让cur++,dest++

                  dest

                             cur 


 1        3        0        0        12                为0让cur++

                   dest

                                        cur


1        3        12        0        0                 不为0就交换再让二者++

                           dest

                                        cur                                      


                                 cur=numsSize跳出循环

c++实现

思路相同初始值略有不同,更加简洁

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        
     for(int dest=-1,cur=0;cur<nums.size();cur++)
        if(nums[cur])
            swap(nums[++dest],nums[cur]);
    }
};

其实这里还可以用快排来实现

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

相关文章:

  • Day 5
  • FPGA实现4K MIPI视频解码转HDMI2.0输出,基于IMX317摄像头,支持4K@60Hz,提供2套工程源码和技术支持
  • Logback 全面指南:从基础配置到高级应用
  • 76个复古黑白科幻几何抽象灵感运动元素纹理DJ舞台背景MV视频/PSD/PNG/JPG素材 Pixflow - Tour Visual Elements
  • 深入实践:基于WebSocket的全球化金融数据实时对接方案。 马来西亚、印度、美国金融数据API
  • 【Python桌面应用】PySide6 界面开发完全指南
  • javascript实现一个函数,将字符串中的指定子串全部替换为另一个字符串的原理,以及多种方法实现。
  • 1014 Waiting in Line
  • C++中shared_ptr 是线程安全的吗?
  • 使用 Avada 主题实现高级表单功能的技术指南
  • Day2 蓝桥杯省赛冲刺精炼刷题 —— 递归与递推
  • 浙江大学公开课|第二季|从大模型、智能体到复杂AI应用系统的构建——以产业大脑为例
  • final+模版设计模式的理解
  • [操作系统,学习记录]3.进程(2)
  • -PHP 应用文件上传函数缺陷条件竞争二次渲染黑白名单JS 绕过
  • AI大模型从0到1记录学习 day09
  • 求解AX=XB 方法
  • 车载软件刷写 --- 由擦除例程问题带来的反思
  • Java 图片压缩:高效压缩方案解析
  • 基于三维数字图像相关(DIC)技术的生物材料多尺度力学性能原位表征方法研究
  • 基于django优秀少儿图书推荐网(源码+lw+部署文档+讲解),源码可白嫖!
  • Centos安装Python3.7(亲测可用)
  • github——SSH连接配置文档
  • @Slf4j注解
  • python的内存管理
  • Knife4j 接口文档使用流程分析
  • 7.3 主成分分析(PCA)
  • Python切片中的步长秘密
  • Python 序列构成的数组(切片)
  • sqli-labs靶场 less 10