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

【leetcode 28】27.移除元素==双指针==

题链
在这里插入图片描述

1.双层for循环

i–; // 因为下标i以后的数值都向前移动了一位,所以i也向前移动一位
len–; // 此时数组的大小-1

class Solution {
    public int removeElement(int[] nums, int val) {
        //1.两层循环
        int len=nums.length;
        for(int i=0;i<len;i++){
            if(nums[i]==val){
                for(int j=i+1;j<len;j++){
                    nums[j-1]=nums[j];
                }
                i--; // 因为下标i以后的数值都向前移动了一位,所以i也向前移动一位
                len--; // 此时数组的大小-1
            }

        }
        return len;
    }
}

2.双指针法

双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。
定义快慢指针
快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组
慢指针:指向更新 新数组下标的位置

class Solution {
    public int removeElement(int[] nums, int val) {
        //2.双指针法
        int slowIndex=0;
        for(int fastIndex=0;fastIndex<nums.length;fastIndex++){
            if(nums[fastIndex]!=val){
                nums[slowIndex]=nums[fastIndex];
                slowIndex++;
            }

        }
        return slowIndex;
    }
}

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

相关文章:

  • Qt文本处理【正则表达式】示例详解:【QRegularExpression】
  • Docker 1. 基础使用
  • 第四十五章:青岛自驾之旅:拥抱山海的欢乐时光
  • C语言基础第04天:数据的输出和输出
  • Centos Ollama + Deepseek-r1+Chatbox运行环境搭建
  • 【系统架构设计师】嵌入式系统之JTAG接口
  • 【系统架构设计师】面向架构评估的质量属性
  • malloc底层原理 brk,sbrk,mmap
  • Spark 源码 | 脚本分析总结
  • 【Qt之·类QTextCursor】
  • 深入浅出:图解Vue 3生命周期的全流程
  • 红外皮秒激光器:开启超快激光技术新时代
  • 算法03-基数排序
  • 【AI知识点】苦涩的教训 The Bitter Lesson by Rich Sutton(2019)
  • Vite打包路径base配置项设置
  • JVM ①-类加载 || 内存区域
  • Redis 数据类型 List 列表
  • 【Python深入浅出】Python3正则表达式:开启高效字符串处理大门
  • 【AI学习】DeepSeek为什么强?
  • windows生成SSL的PFX格式证书
  • arcgis界址点编号工具开发原理(西北角顺时针)
  • 生成式语言模型技术全解析
  • 笔记:蓝桥杯python搜索(3-2)——DFS剪支和记忆化搜索
  • 车载测试工具 --- CANoe VH6501 进行Not Acknowledge (NAck) 测试
  • HTTP 请求头、响应头常见字段分析
  • Lisp语言的Web开发