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

【leetcode 02】27. 移除元素

方法一:超时O(n^2)

暴力解法
这个题目暴力的解法就是两层for循环,一个for循环遍历数组元素 ,第二个for循环更新数组。

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int len=nums.size();
        int size=len;
        for(int i=0;i<len;i++){
             if(nums[i]==val){
                for(int j=i+1;j<len;j++){
                     nums[j-1]=nums[j];
                     }
                    size--;
                    i--;
                }
                
        }
        return size;
        
    }
};

方式二:

  • 双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。

定义快慢指针:

  • 快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组
  • 慢指针:指向更新 新数组下标的位置
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int len=nums.size();
        int slowIndex=0;
        
        for(int fastIndex=0;fastIndex<len;fastIndex++){
            if(nums[fastIndex]!=val){
                nums[slowIndex++]=nums[fastIndex];
                
            }
        }
        return slowIndex;
       
        
    }
};

http://www.kler.cn/a/401428.html

相关文章:

  • Pandas学习
  • 如何解决多系统数据重复与冲突问题?
  • 【MYSQL】锁详解(全局锁、表级锁、行级锁)【快速理解】
  • RabbitMQ的基本概念和入门
  • PHP 表单 - 必需字段
  • WPF Gif图谱 如果隐藏的话会存在BUG
  • Three.js PBR材质
  • iOS无人直播虚拟视频实用版
  • Windows系统编程 - 进程遍历
  • 力扣hot100-->二分查找
  • 【HBase】【大数据技术基础】实验五 HBase基础编程实验
  • 华为VPN技术
  • 12万字 | 企业智慧数字化运营平台重构建设项目实施技术方案
  • 【读书笔记-《网络是怎样连接的》- 7】Chapter3_2 路由器
  • 淘宝商品爬虫:Python实战指南
  • PMC要接受什么培训?
  • 【K8S系列】Kubernetes Pod节点ImagePullBackOff 状态及解决方案详解【已解决】
  • CentOS 9 无法启动急救方法
  • 前端框架主要做些什么工作
  • WPF中的登录界面
  • FastDDS之进程内通信
  • 统计学习模型相关知识简记
  • 基于springboot健康医院门诊在线挂号系统源码和论文
  • 2024山西省网络建设运维第十八届职业院校技能大赛解析答案(3. ansible 服务)
  • 计算机网络 (2)计算机网络的类别
  • Java-04 深入浅出 MyBatis - SqlSessionFactory 与 SqlSession DAO与Mapper 代理模式