移除元素——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;
    }
}
相关推荐
leoufung10 分钟前
LeetCode 322. Coin Change:从错误思路到正确一维 DP
算法·leetcode·职场和发展
旧梦吟13 分钟前
脚本网页 双子星棋
算法·flask·游戏引擎·css3·html5
ullio19 分钟前
arc205d - Non-Ancestor Matching
算法
wa的一声哭了26 分钟前
内积空间 正交与正交系
java·c++·线性代数·算法·矩阵·eclipse·云计算
SWAGGY..30 分钟前
数据结构学习篇(8)---二叉树
数据结构·学习·算法
星轨初途33 分钟前
牛客小白月赛126
开发语言·c++·经验分享·笔记·算法
leoufung37 分钟前
动态规划DP 自我提问模板
算法·动态规划
爱编程的小吴44 分钟前
【力扣练习题】热题100道【哈希】560. 和为 K 的子数组
算法·leetcode·哈希算法
Swift社区1 小时前
LeetCode 463 - 岛屿的周长
算法·leetcode·职场和发展
皮卡蛋炒饭.1 小时前
宽搜bfs与深搜dfs
算法·宽度优先