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

LeetCode283.移动零

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

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

示例 1:

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

示例 2

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

 

#include <iostream>
using namespace std;
//给定一个数组,将所有的0移动到数组末尾,同时保持非零元素相对顺序;//int arr[5] = { 0,1,0,3,12 };//移动后  {1,3,12,0,0}
//解题思路:
//采用双指针进行指针L,R,进行遍历数组,如并进行交换位置
// 当R指针为非0时,进行交换指针L元素与R元素;交换完成后L元素位置向后增1    
//其中[L,R)间数组元素为非零元素,[R,0]间的元素为零;
//
int main() {int arr[5] = { 0,1,0,3,12 };int length = sizeof(arr)/sizeof(*arr);int left = 0;for (int right = 0; right < length; right++){if (arr[right]) //指针指向的数组元素为非零则为真,进行元素交换{int temp = arr[right];arr[right] = arr[left];arr[left] = temp;++left;}}cout << "移动零后的数组" << endl;for (int i = 0; i < length; i++){cout << arr[i] << endl;}system("pause");return 0;
}

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

相关文章:

  • 缓存 --- 内存缓存 or 分布式缓存
  • [OS_7] 访问操作系统对象 | offset | FHS | Handle
  • 性能比拼: Go vs Bun
  • LeRobot 项目部署运行逻辑(一)——综述
  • 深度学习总结(25)
  • 认知升级:把握人工智能教育化转型的历史机遇
  • xss学习3之服务端session
  • 2025.4.20总结
  • 【Bluedroid】蓝牙 HID 设备信息加载与注册机制及配置缓存系统源码解析
  • ReentrantReadWriteLock读写锁
  • Nacos配置中心客户端处理服务端配置信息源码解析
  • 透视部分国产碳化硅(SiC)MOSFET栅氧可靠性报告造假乱象
  • ClickHouse核心架构设计
  • 【中间件】redis使用
  • Gen - CDPT举例说明:动态上下文前缀(输入先和标签结合,输出结果会更贴近标签内容)
  • 大数据可能出现的bug之flume
  • Matlab 汽车行驶速度PID控制系统仿真
  • GIS开发笔记(9)结合osg及osgEarth实现三维球经纬网格绘制及显隐
  • 利用 HEMT 和 PHEMT 改善无线通信电路中的增益、速度和噪声
  • 常见的页面报错
  • 热门算法面试题第19天|Leetcode39. 组合总和40.组合总和II131.分割回文串
  • windows docker desktop 无法访问容器端口映射
  • 大模型面经 | 介绍一下CLIP和BLIP
  • mac监控linux上mysql性能(Grafana+Prometheus+mysqld_exporter)
  • 每日一题——最小测试用例集覆盖问题
  • 通过爬虫方式实现头条号发布视频(2025年4月)
  • 2025 UCSCCTF Pwn-wp(含附件)
  • Java链表反转方法详解
  • 2. 什么是最普通的自动化“裸奔状态”?
  • 扣子智能体1:创建Agent与写好提示词