移除元素——leetcode[1]

思路:

  1. 左指针从0,右指针从尾开始
  2. 循环结束条件:left <= right
  3. 处理过程:
  • 左指针的值等于val,右指针的值覆盖上来,右指针--;【此处,右指针覆盖上来的值可能也等于val,所以left还不能++,加了就意味着忽略了要移除的值】

  • 不等于val,左指针右移

  • 最后返回左指针

代码:

java 复制代码
class Solution{
    public int removeElement(int[] nums, int val){
        int left = 0;
        int right = nums.length -1;
        while(left <= right){
            if(nums[left] == val){
                nums[left] = nums[right];
                right--;
            }
            else{
                left++;
            }
        }
        return left;
    }
}
相关推荐
Mem0rin2 分钟前
[Java]排序
java·算法·排序算法
qeen8723 分钟前
【算法笔记】差分与经典例题解析
c语言·c++·笔记·学习·算法·差分
kronos.荒28 分钟前
动态规划——整数拆分(python)
python·算法·动态规划
cici1587434 分钟前
基于Koopman模型预测控制的非线性流控制数据驱动框架
算法
6Hzlia36 分钟前
【Hot 100 刷题计划】 LeetCode 416. 分割等和子集 | C++ 0-1背包 1D空间极致优化
c++·算法·leetcode
穿条秋裤到处跑37 分钟前
每日一道leetcode(2026.04.21):执行交换操作后的最小汉明距离
java·算法·leetcode
Tina学编程38 分钟前
算法训练Day10 | LeetCode 169 多数元素
算法·leetcode
sheeta19981 小时前
LeetCode 每日一题笔记 日期:2026.04.22 题目:2452. 距离字典两次编辑以内的单词
笔记·算法·leetcode
ZPC82101 小时前
nmtui
人工智能·算法·机器人
_深海凉_1 小时前
LeetCode热题100-全排列
算法·leetcode·职场和发展