移除元素——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;
    }
}
相关推荐
ytttr87320 小时前
Landweber迭代算法用于一维、二维图像重建
人工智能·算法·机器学习
feifeigo12321 小时前
Matlab编写压缩感知重建算法集
人工智能·算法·matlab
烛衔溟21 小时前
C语言多级指针与函数指针:指针的高级用法
c语言·算法
Sunhen_Qiletian1 天前
YOLOv2算法详解(下篇):细节打磨与性能突破的终极密码
算法·yolo
wefg11 天前
【数据结构】unordered 系列容器底层结构和封装
数据结构·算法·哈希算法
从零点1 天前
插补算法(逐点比较法)+PWM配置操作
算法
DARLING Zero two♡1 天前
【优选算法】LinkedList-Concatenate:链表的算法之契
数据结构·c++·算法·链表
Moonbit1 天前
MoonBit Pearls Vol.14:哈希表避坑指南
后端·算法·编程语言
杰克尼1 天前
120. 三角形最小路径和
算法