【leetcode】 27. 移除元素

server/2024/9/22 23:50:04/

题目:

题目链接

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。
假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:
更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
返回 k

代码:

方法一:双指针

class Solution {
public:int removeElement(vector<int>& nums, int val) {int i = 0, j = nums.size() - 1;int cnt = 0; // 统计非 val 元素的个数while (i <= j) { // 注意区间长度为 1 时,也要进入循环while (i <= j && nums[i] != val) { // i 向后移动,找第一个 val++i;cnt++; // 移动过程中统计非 val 的数量}while (i <= j && nums[j] == val) { // j 向前移动,找第一个非 val 元素--j;}if (i < j) { // 交换两个指针所标记的元素int t = nums[i];nums[i] = nums[j];nums[j] = t;}}return cnt;}
};

方法二:平移

class Solution {
public:int removeElement(vector<int>& nums, int val) {int cnt = 0, len = nums.size();for (int i = 0; i < len; i++) {if (nums[i] == val) { // 统计当前位置及其前方 val 的数量 cntcnt++;} else{nums[i - cnt] = nums[i]; // 将不是 val 的值向前移动 cnt 个位置}}return nums.size() - cnt;}
};

http://www.ppmy.cn/server/105053.html

相关文章

基于单片机车载酒精浓度的检测系统

摘 要&#xff1a; 为了有效地防止驾驶员酒后驾车的行为&#xff0c;设计了一种基于单片机车载酒精浓度的检测系统 。 该系统由酒精传感器、 A/D 转换器 、 AT89S52 单片机控制器 、 语音报警 、 LCD 液晶显示 、 LED 指示灯 、 车门锁传感器 、 压力传感器和继电器等构成。 当…

单线程环境下,用时间做为单一文件名称全局唯一处理

package org.example.file;import java.util.concurrent.ConcurrentHashMap;public class FileHelper {private FileService fileService;//全局唯一&#xff0c;用于控制文件时间全局唯一//value&#xff1a;0&#xff1a;没被消费&#xff0c;1&#xff1a;被消费public stat…

EasyCVR视频汇聚平台革新播放体验:WebRTC协议赋能H.265视频流畅传输

随着科技的飞速发展和网络技术的不断革新&#xff0c;视频监控已经广泛应用于社会各个领域&#xff0c;成为现代安全管理的重要组成部分。在视频监控领域&#xff0c;视频编码技术的选择尤为重要&#xff0c;它不仅关系到视频的质量&#xff0c;还直接影响到视频的传输效率和兼…

Tensorflow实现深度学习案例7:咖啡豆识别

本文为为&#x1f517;365天深度学习训练营内部文章 原作者&#xff1a;K同学啊 一、前期工作 1. 导入数据 from tensorflow import keras from tensorflow.keras import layers,models import numpy as np import matplotlib.pyplot as plt import os,PIL,p…

数学基础 -- 线性代数之矩阵的可逆性

矩阵的可逆性 1. 矩阵可逆的定义 对于一个 n n n \times n nn 的方阵 A A A&#xff0c;如果存在一个矩阵 B B B 使得&#xff1a; A B B A I n A \times B B \times A I_n ABBAIn​ 其中 I n I_n In​ 是 n n n \times n nn 的单位矩阵&#xff08;对角线上全…

JavaScript类型化数组深度解析:提升二进制数据处理能力

在JavaScript中&#xff0c;类型化数组&#xff08;Typed Arrays&#xff09;是一种处理二进制数据的强大机制。它们为开发者提供了一种在JavaScript中存储和操作固定长度的原始二进制数据的方式。与普通数组不同&#xff0c;类型化数组允许你以特定的格式&#xff08;如整数或…

基于Matlab GUI的信号发生器界面程序示例

前些日子&#xff0c;被一朋友拜托了一课设&#xff0c;不是很难&#xff0c;但基于matlab GUI的设计中文论坛资源较少&#xff0c;所以我做完顺便分享一下。 程序主要内容&#xff1a; 效果展示&#xff1a; 主要代码&#xff1a; 代码展示&#xff0c;复制粘贴不能直接执行…

Openstack 与 Ceph集群搭建(中): Ceph部署

文章目录 一、部署前说明1. ceph 版本选择依据2. ceph网络要求3. 硬件要求 二、部署架构三、部署过程1. 通用步骤2. 部署管理节点创建账号安装Cephadm运行bootstrap 3. 登录Ceph web4. 将其他节点加入集群同步ceph key安装ceph CLI命令行添加主机节点到集群添加OSD节点将监控节…