首页 > 其他分享 >Leetcode 27. 移除元素

Leetcode 27. 移除元素

时间:2023-09-13 13:12:16浏览次数:40  
标签:index 27 val nums int right 移除 Leetcode left

题目描述

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

双指针

Python 实现

def removeElement(nums: List[int], val: int) -> int:
    if val not in nums:
        # 如果不存在指定元素,直接返回数组长度
        return len(nums)
    else:
        left, right = 0, len(nums)
        while left < right:
            if nums[left] == val:
                nums[left] = nums[right - 1]
                right -= 1
            else:
                left += 1
        return left

Java 实现

    public int removeElement(int[] nums, int val) {
        int left = 0, right = nums.length;
        while (left < right) {
            if (nums[left] == val) {
                nums[left] = nums[right - 1];
                right--;
            } else {
                left++;
            }
        }
        return left;
    }

通用法

Python 实现

def removeElement_01(nums: List[int], val: int):
    if val not in nums:
        return len(nums)
    else:
        index = 0
        for item in nums:
            if item != val:
                nums[index] = item
                index += 1
        return index

Java 实现

    public int removeElement01(int[] nums, int val) {
        int index = 0;
        for (int item : nums) {
            if (item != val) {
                nums[index++] = item;
            }
        }
        return index;
    }

标签:index,27,val,nums,int,right,移除,Leetcode,left
From: https://www.cnblogs.com/wdh01/p/17660522.html

相关文章

  • leetcode547省份数量
    深度优先搜索vector<bool>vis;intnum=0;voiddfs(vector<vector<int>>&isConnected,intx){vis[x]=true;for(inti=0;i<isConnected[x].size();i++){if(!vis[i]&&isConnected[x][i]){dfs(isConnected,i);......
  • 锁表查询,转载 https://www.toutiao.com/article/7275538336188695099/?channel=&sourc
    Oracle死锁与慢查询总结 查看死锁SELECTs.sid"会话ID",s.lockwait"等待锁",s.event"等待的资源/事件",--最近等待或正在等待的资源/事件DECODE(lo.locked_mode,0,'尚未获得锁',1,NULL,2,'行共享锁',3,'行排它锁',4,'共享表锁',5,�......
  • Sol.UVA10127
    题意:给定\(n\),找到形如\(1111...1111\)的数\(y\),使得\(y\equiv1\modx\),最终输出\(y\)的位数。思路:形如\(1111...1111\)的数可以拆分成\(10...00\times1+10...0\times1+...+10\times1+1\),因此我们可以每次让$y=y\times10+y$,每次判断是否能整除\(......
  • 【Leetcode】解题报告Day1~Day2
    解题报告Day11.2235.两数之和给你两个整数num1和num2,返回这两个整数的和。示例1:输入:num1=12,num2=5输出:17解释:num1是12,num2是5,它们的和是12+5=17,因此返回17。示例2:输入:num1=-10,num2=4输出:-6解释:num1+num2=-6,因此返回-6。提示:......
  • LeetCode 1934.确认率
    1934.确认率1.问题关键精炼:确认率是confirmed消息的数量除以请求的确认消息的总数。没有请求任何确认消息的用户的确认率为0。确认率四舍五入到小数点后两位2.难点解析:我觉得这道题是考察AVG函数的使用。根据需求可以看出,答案也就是一个公式:confirmed消息的数量/总......
  • 取暖器常规测试标准要求: UL 1278测试项目主要内容有?
    取暖器常规测试标准要求:UL1278测试项目主要内容有?取暖器是指用于取暖的设备,取暖设备根据加热介质不同、加热原不同,大体可以分为:燃气取暖设备、电加热取暖设备、锅炉取暖设备、电壁挂炉取暖。但一般这类产品要上架美国亚马逊平台都必须要办理UL1278测试报告。适用产品范围:UL1278......
  • 如何远离被黑43.227.222.x
    如何高效防御木马病毒1. 加固所有账户的密码,主要包括以下密码建议密码长度不小于8位并且使用大写字母、小写字母、数字、特殊字符组合。·         服务器登录密码·         数据库连接密码·         网站后台密码·         FTP密码·  ......
  • leetcode841钥匙和房间
    使用深度优先遍历构造的图,只要访问过就标记已访问intnum=0;vector<bool>vis;voiddfs(vector<vector<int>>&rooms,intx){vis[x]=true;num++;for(auto&v:rooms[x]){if(!vis[v])dfs(rooms,v);//说明这个房间没有进去过,所以可以访问}}intmai......
  • leetcode450删除搜索二叉树的节点
    删除的二叉树节点分4种情况:叶子节点,直接删除就行左节点不为空,右节点为空;直接将左子树返回左节点为空,右节点不为空;直接将右子树返回左节点和右节点不为空;将右子树最小的节点作为根节点,返回右子树TreeNode*deleteNode(TreeNode*root,intkey){if(!root)returnn......
  • Leetcode 26. 删除有序数组中的重复项
    题目描述给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。双指针Python实现defremoveDuplicates(nums:List[int])->int:......