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

leetcode(双指针)283.移动零(C++)DAY3

文章目录

  • 1.题目
    • 示例
    • 提示
  • 2.解答思路
  • 3.实现代码
    • 结果
  • 4.总结

1.题目

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例

示例 1:

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]
示例 2:

输入: nums = [0]
输出: [0]

提示

1 <= nums.length <= 104
-2^31 <= nums[i] <= 2 ^31 - 1

2.解答思路

用 i,j 遍历vector对象
其中nums[i]查找不等于0的值,交换到左侧nums[j],不断循环
nums[j]用于表示等于0的值。
参考文章:这个针对此题的动画图解非常清晰,强烈建议

3.实现代码

class Solution
{
public:
    void moveZeroes(vector<int> &nums)
    {
        int n=nums.size();

        if(n == 0)
            return;

        for(int i=0,j=0; i < n ;i++)
        {
            if(nums[i]!=0){//如果下标i的元素不等于0,交换到右侧
                if(i>j)
                    swap(nums[i],nums[j]);
                j+=1;
            }                  
        }
    }
};

结果

在这里插入图片描述

4.总结

今天本来做了一个滑动窗口的题,感觉今天暂时没法弄清楚。
所以先做一道稍微简单一点的题打卡,继续学习~


http://www.kler.cn/a/229975.html

相关文章:

  • React-useState的使用
  • LangGraph中的State管理
  • IDEA:配置Serializable class without ‘serialVersionUID’ 找不到
  • CTF之密码学(培根密码)
  • HDMI转VGA方案 LT8612UX(HDMI2.0) LT8612SX LT8511EX LT8522EX LT8612EX_e(HDMI1.4)
  • 第十六届蓝桥杯模拟赛(第一期)-Python
  • C++多线程:this_thread 命名空间
  • 瑞_23种设计模式_原型模式
  • 京东广告算法架构体系建设--大规模稀疏场景高性能训练方案演变
  • UE5 虚幻游戏报错常用解决方法(幻兽帕鲁UE5报错)
  • 关于ZYZ旋转和XYZ旋转
  • 介绍 MSTest Runner – CLI、Visual Studio 等
  • 前端实现搜索框筛选
  • 【DDD】学习笔记-数据模型与对象模型
  • 微信小程序for循环嵌套
  • 使用STM32 HAL库配置和控制外设接口
  • 【SQL高频基础】1141.查询近30天活跃用户数
  • 基于SSM的实习管理系统(有报告)。Javaee项目。ssm项目。
  • vue2 自定义指令 v-highlight 文本高亮显示分享
  • 常用加密算法
  • 爬虫(三)
  • ELFK日志采 - QuickStart
  • 机器人抓取 [ 题目/摘要 ] 更新中..
  • Golang与Erlang有什么差异
  • 动态规划C语言
  • SpringBoot 事务管理Transactional 数据回滚 数据一致性