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

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 1.0 和 2.0 的区别
  • 阿拉丁神灯-第16届蓝桥第4次STEMA测评Scratch真题第2题
  • Redis 缓存—处理高并发问题
  • 对于网络资源二级缓存的简单学习
  • 【嵌入式人工智能产品开发实战】(二十一)—— 政安晨:源码搭建小智AI嵌入式终端的后端服务(服务器)环境 - 助力嵌入式人工智能开发
  • 测试基础笔记第七天
  • [FPGA]设计一个DDS信号发生器
  • 每天学一个 Linux 命令(28):ln
  • CentOS stream 中部署Zabbix RPM软件包公钥验证错误
  • 20.3 使用技巧6
  • 自定义 strlen 函数:递归实现字符串长度计算
  • 如何使用人工智能大模型,免费快速写工作计划?
  • kotlin,编码、解码
  • 存储图表数据的模板类QCPDataContainer
  • TDengine 性能监控与调优实战指南(二)
  • 一文粗通 Celery 分布式任务队列
  • RV1126网络环境TFTPNFS搭建(四)
  • 产品经理学习过程
  • PG CTE 递归 SQL 翻译为 达梦版本
  • 指针(2)
  • 被指违反代理协议遭南航暂停售票资格, 去哪儿网:今起恢复
  • 消息人士称哈马斯愿与以色列达成长期停火
  • “棉花糖爸爸”陈生梨:女儿将落户到贵州纳雍
  • 鲁比奥称“美或退出俄乌谈判”,欧洲官员:为了施压乌克兰
  • 四川省委统战部副部长(正厅级)张荣履新峨眉电影集团“一把手”
  • 俄总统新闻秘书:乌克兰问题谈判相当艰难