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

LeetCode 283.移动零

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

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

示例 1:

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

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

提示:

1 <= nums.length <= 104
-231 <= nums[i] <= 231 - 1

进阶:你能尽量减少完成的操作次数吗?

同向双指针,把当右指针指向非零值时,将其与左指针指向的值交换:

class Solution {
public:void moveZeroes(vector<int>& nums) {int l = -1;int r = 0;int n = nums.size();while (r < n) {if (nums[r] != 0) {++l;swap(nums[l], nums[r]);}++r;}}
};

如果nums的长度为n,则此算法时间复杂度为O(n),空间复杂度为O(1)。

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

相关文章:

  • C语言:指针(5)
  • break的使用大全
  • 基于STM32单片机的智能粮仓温湿度检测蓝牙手机APP设计
  • YAML:锚点深度解析,告别重复,拥抱优雅的配置艺术
  • 初识CNN02——认识CNN2
  • 浏览器面试题及详细答案 88道(45-55)
  • MyBatis 与 MyBatis-Plus 的区别
  • 20day-人工智能-机器学习-线性回归
  • 数据处理与统计分析 —— numpy入门
  • @mcp.tool如何从函数定义映射到llm系统输入
  • Kotlin作用域函数全解:run/with/apply/let/also与this/it的魔法对决
  • LORA模块的通讯速率(915Mhz)以及通道数量规划
  • 图片滤镜处理(filters)
  • 【机器学习深度学习】生成式评测
  • 数据处理分析环境搭建+Numpy使用教程
  • Design Compiler:使用IC Compiler II Link
  • PCA降维 提升模型训练效率
  • CUDA TensorRT Python智能提示补全解决方案
  • MySQL约束知识点
  • iceberg 底层存储HDFS与juiceFS的区别
  • epoll发数据学习
  • 自己开发的VIP monitor通过TLM port口连接到RefenceModel 但是get不出transaction的问题
  • 《中国棒球知识科普》国家级运动健将标准·棒球1号位
  • 力扣(接雨水)——标准双指针
  • 最长链(二叉树直径DFS)
  • 【学习笔记】NTP服务客户端配置
  • 医疗领域名词标准化工具
  • 二分算法(模板)
  • Vue插槽---slot详解
  • RAGFlow入门