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

力扣之删除有序数组中的重复项

        力扣:26. 删除有序数组中的重复项 - 力扣(LeetCode)

        方法:双指针法。

        我的方法:

class Solution {
public:int removeDuplicates(vector<int>& nums) {int slow =0,fast;for(fast = 0; fast < nums.size() - 1 ; fast ++){if(nums[fast] != nums[fast + 1]){nums[slow ++ ] = nums[fast];}}nums[slow ++] = nums[nums.size() - 1];return slow;}
};

fast指针是用来遍历数组,寻找符合要求的数组元素,slow是用来更新数组元素的。我的方法是判断右边的数字是否与自身相等,如果相等,fast++,直到到达了重复数组的右边界元素,放入到slow指向的位置。对于最后一个元素,不管有没有重复,都需要放入到新数组中。

        其他的方法:

class Solution {
public:int removeDuplicates(vector<int>& nums) {int n = nums.size();if(n == 0) return 0;int j = 0;for(int i = 0; i < n; i++){if(nums[j] != nums[i]){nums[++j] = nums[i];}}return j + 1;}
};

双指针解法
一个指针 i 进行数组遍历,另外一个指针 j 指向有效数组的最后一个位置。

只有当 i 所指向的值和 j 不一致(不重复),才将 i 的值添加到 j 的下一位置。

附录:

26. 删除有序数组中的重复项 - 力扣(LeetCode)

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

相关文章:

  • pnpm、npm、yarn 包管理工具『优劣对比』及『环境迁移』
  • 【AntDesign】多环境配置和启动
  • Unix Network Programming Episode 78
  • 学习笔记(css穿透、vue-cookie、拦截器、vuex、导航守卫、token/Cookie、正则校验)
  • Day4:Linux系统编程1-60P
  • 【HuggingFace】Transformers(V4.34.0 稳定)支持的模型
  • oracle 导入数据泵常用语句
  • tensorflow中的常见方法
  • 【周末闲谈】“PHP是最好的语言”这个梗是怎么来的?
  • 四位十进制数字频率计VHDL,仿真视频、代码
  • Unity实现设计模式——策略模式
  • C++基础——数据类型
  • 文本自动输入/删除的加载动画效果
  • PHP8的匿名类-PHP8知识详解
  • WebKit Inside: CSS 样式表的匹配时机
  • <HarmonyOS第一课>从简单的页面开始——闯关习题及答案
  • 视频下载plus+:一款强大的视频下载小程序
  • 扭线机控制
  • Android App启动优化之启动框架
  • zookeeper入门篇之分布式锁
  • leetcode解题思路分析(一百四十九)1297 - 1304 题
  • 你的librosa和scikit-learn打架了吗?
  • 理解自动驾驶感知技术
  • 一款简化Python自然语言处理的开源库
  • 常用Redis界面化软件
  • 电脑散热——液金散热
  • 多线程锁-synchronized字节码分析
  • SpringCloud学习笔记-Eureka的服务拉取
  • COLLABORATIVE DESIGNER FOR SOLIDWORKS® 新功能
  • AMD CPU 虚拟机安装 macos 系统的各虚拟机系统对比