移除元素——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;
    }
}
相关推荐
啦啦啦啦啦zzzz20 分钟前
数据结构:二叉树的线索化
数据结构·算法
2401_8724187839 分钟前
算法入门:并查集(Disjoint Set / Union-Find):连通性问题的利器
算法
luj_176844 分钟前
R语言生态优势与学习曲线分析
c语言·开发语言·网络·经验分享·算法
计算机安禾1 小时前
【算法分析与设计】第36篇:计算几何基础:凸包问题的分治与扫描线解法
大数据·人工智能·算法·机器学习·剪枝
货拉拉技术1 小时前
飞速发展的计算机视觉
人工智能·算法
如竟没有火炬1 小时前
寻找峰值——二分
java·开发语言·数据结构·python·算法·散列表
noipp2 小时前
推荐题目:洛谷 P1115 最大子段和
算法
Lumbrologist2 小时前
【C++】零基础入门 · 第 17 节:多线程编程基础
java·c++·算法
轻闲一号机2 小时前
【语音】笔记
前端·笔记·算法
aWty_2 小时前
实分析入门(12)--可测函数
学习·数学·算法·实变函数