首页 > 其他分享 >LeetCode刷题-移除元素

LeetCode刷题-移除元素

时间:2024-10-23 16:18:21浏览次数:7  
标签:返回 val nums int 元素 数组 移除 LeetCode 刷题

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。

假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:

  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。

  • nums 的其余元素和 nums 的大小并不重要,返回 k

示例 1:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2,_,_]
解释:你的函数函数应该返回 k = 2, 并且 nums 中的前两个元素均为 2。
你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。

示例 2:

输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,4,0,3,_,_,_]
解释:你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。
注意这五个元素可以任意顺序返回。
你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。

提示:

  • 0 <= nums.length <= 100

  • 0 <= nums[i] <= 50

  • 0 <= val <= 100

思路:我想的是创建一个空的数组,不是目标值就赋值给新数组即可,空间复杂度O(1),时间复杂度O(n)。过啦!

class Solution {
    public int removeElement(int[] nums, int val) {
        int length  = nums.length;
        int tem = 0;
        for (int i = 0; i < length; i++) {
            // 和目标值相同就不放入数组
            if (nums[i] != val){
                nums[tem++] = nums[i];
            }
        }
        return tem;
    }
}

总结:这个题目就很简单,一下子就做了出来,优化了一下,不需要新创建一个数组,利用原有数组即可,利用一切可以利用的资源yyds!!!

ending:闻道有先后,术业有专攻,悟已往之不谏,知来者之可追,如是而已!

标签:返回,val,nums,int,元素,数组,移除,LeetCode,刷题
From: https://blog.csdn.net/m0_46224501/article/details/143187291

相关文章

  • 代码随想录刷题学习日记
    仅为个人记录复盘学习历程,解题思路来自代码随想录代码随想录刷题笔记总结网址:代码随想录二叉树理论基础学习二叉树有两种主要的形式:满二叉树和完全二叉树。满二叉树:只有度为0的结点和度为2的结点,且度为0的结点在同一层的二叉树。深度为k,有2^k-1个节点。完全二叉树:除了最......
  • Python脚本,它将遍历指定目录下的所有.srt文件,移除其中的不必要的英文字符、不必要的空
    Python脚本,它将遍历指定目录下的所有.srt文件,移除其中的不必要的英文字符、不必要的空行以及不必要的空格。该脚本会保留字幕索引、字幕时间线以及字幕中的中文内容,并且只保留字幕中的中文内容。它还会保留字幕行与字幕之间的换行符,同时去掉字幕与字幕之间的不必要的换行符。处理......
  • 代码随想录算法训练营第八天|leetcode344.反转字符串、leetcode541. 反转字符串II、卡
    1leetcode344.反转字符串题目链接:344.反转字符串-力扣(LeetCode)文章链接:代码随想录视频链接:字符串基础操作!|LeetCode:344.反转字符串_哔哩哔哩_bilibili自己的思路:直接使用python的内置函数reverse进行一个操作1.1自己的代码1.1.1python的内置函数classSolution:......
  • 软考刷题记录2
    1.选择题1.以下关于总线的叙述中,不正确的是()。A.并行总线适合近距离高速数据传输B.串行总线适合长距离数据传输C.单总线结构在一个总线上适应不同种类的设备,设计简单且性能很高D.专用总线在设计上可以与连接设备实现最佳匹配答案:C解析:单总线结构如上图所示。计算机的各......
  • wpf移除事件委托
    publicclassEventHandlerHelper{publicstaticDelegateGetEventDelegate(RoutedEventHandlerInfo[]rehis,stringmethod_name){foreach(RoutedEventHandlerInforhinrehis){if(rh.Handler.Meth......
  • 考公刷题,如何才能做到有效提高?
    在这个“不拼爹”的时代里,考公务员成了不少小伙伴们的首选。但是,要想在这条路上走得稳当,可不是一件容易的事儿。如何通过刷题来提升自己的竞争力呢?我们就来说说那些能让你刷题效率翻倍的小技巧吧!1.制定合理的学习计划刷题不是漫无目的地做题,而是要有计划地进行。想象一下,如......
  • C++刷题tricks整理
    是自己做题中整理的常用C++操作,此为存档。STL容器容器适配器,STL里面的vector/array/deque/set/map/unordered_set可以直接使用==比较是否相等:vector<int>a;deque<int>a;map<int,string>a;unordered_map<int,string>a;set<int>a;unordered_set<int>a;forward_lis......
  • Yorkie 如何移除githooks 钩子
    要移除Yorkie设置的Githooks,你可以按照以下步骤进行操作:1.手动删除GitHooksYorkie将Githooks安装在项目的.git/hooks目录中。你可以手动删除这些hooks文件:打开终端,导航到你的项目目录。进入.git/hooks目录:cd.git/hooks删除相应的hook文件,例如pr......
  • 【快慢指针】LeetCode 143. 重排链表
    题解用快慢指针先找到中间结点,然后断开前后两条链,用头插法的思路逆转后面那条链,最后两条链依次从前往后遍历插入即可。参考代码/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nul......
  • PMP--必刷题–解题–61-70
    文章目录4.整合管理--问题日志--61、[单选]一个软件交付项目开始遇到技术障碍,这个问题可能导致交付物延迟。技术服务团队一直在处理这个问题,但即使经过1周的维护,问题仍未解决。高级项目经理现在应该怎么做?62、[单选]客户要求项目经理提供项目状态报告。项目经理发送......