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

刷题 41-45

四十一、移除元素

示例 1:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。

示例 2:

输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,4,0,3]
解释:函数应该返回新的长度 

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

int removeElement(int* nums, int numsSize, int val) {int left = 0;  // 定义左指针,初始指向数组的第一个元素int right = numsSize;  // 定义右指针,初始指向数组的最后一个元素的下一个位置while (left < right) {  // 当左指针小于右指针时执行循环if (nums[left] == val) {  // 如果左指针指向的元素等于给定值nums[left] = nums[right - 1];  // 将右指针指向的元素赋值给左指针指向的位置right--;  // 右指针向前移动一位} else {left++;  // 左指针向后移动一位}}return left;  // 返回处理后的数组长度(左指针位置)
}

 

int removeElement(int* nums, int numsSize, int val) {int left = 0;for (int right = 0; right < numsSize; right++) {if (nums[right] != val) {nums[left] = nums[right];left++;}}return left;
}

http://www.lryc.cn/news/104088.html

相关文章:

  • Centos时间同步
  • Linux 查看磁盘空间
  • 我的会议(我的审批,会议签字附源码)
  • Python 装饰器该如何理解?
  • IDEA 模块不加载依旧是灰色 没有变成小蓝色的方块
  • 可以写进简历的kafka优化-----吞吐量提升一倍的方法
  • JavaScript中,for in 和for of的区别
  • 计算机毕设 深度学习手势识别 - yolo python opencv cnn 机器视觉
  • vue3 axios接口封装
  • 誉天程序员-2301-3-day08
  • Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式
  • 前端(十一)——Vue vs. React:两大前端框架的深度对比与分析
  • 三分钟白话RocketMQ系列—— 核心概念
  • 递归竖栏菜单简单思路
  • 组件化、跨平台…未来前端框架将如何演进?
  • vue 修改端口号
  • hive的metastore问题汇总
  • 【phaser微信抖音小游戏开发003】游戏状态state场景规划
  • 字符串性能优化
  • 从零开始理解Linux中断架构(23)中断运行临界区和占先调度
  • (3)Gymnasium--CartPole的测试基于DQN
  • 利用sklearn 实现线性回归、非线性回归
  • Java课题笔记~ MyBatis入门
  • Activity的自启动模式
  • 53数组的扩展
  • Rust调试【三】
  • uniApp 对接安卓平板刷卡器, 读取串口数据
  • Go new 与 make
  • centos系统离线安装k8s v1.23.9最后一个版本并部署服务,docker支持的最后一个版本
  • (学习笔记-内存管理)如何避免预读失效和缓存污染的问题?