移除元素——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;
    }
}
相关推荐
Felven6 分钟前
B. Make Almost Equal With Mod
数据结构·算法
脆皮炸鸡7557 分钟前
Linux~~基础IO
linux·运维·服务器·经验分享·算法·学习方法
踩坑记录10 分钟前
leetcode hot100 416. 分割等和子集 medium 动态规划 01背包 DFS深度优先搜索
leetcode·深度优先·动态规划
colofullove12 分钟前
文本分块策略与预处理
算法
三毛的二哥13 分钟前
BEV:感知抖动问题及解决办法
人工智能·算法·计算机视觉
AI科技星14 分钟前
宇宙终极几何:莫比乌斯光速螺旋统一理论-精细结构常数α本源结构
算法·机器学习·数学建模·数据挖掘·量子计算
Via_Neo27 分钟前
区间dp算法
开发语言·javascript·算法
amcomputer28 分钟前
简单总结拉格朗日乘数法
算法
hi_ro_a30 分钟前
C++ 手撕 STL 底层:红黑树封装 mymap/myset
数据结构·c++·算法
tankeven38 分钟前
贪心算法(Greedy Algorithm)详解:从理论到C++实践
c++·算法