当前位置: 首页 > news >正文

红色基调网站今日国际新闻最新消息

红色基调网站,今日国际新闻最新消息,柳林网站建设,学习建设网站书籍原题地址:. - 力扣(LeetCode) 题目描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k…

原题地址:. - 力扣(LeetCode)

题目描述

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

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

  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 k

用户评测:

评测机将使用以下代码测试您的解决方案:

int[] nums = [...]; // 输入数组
int val = ...; // 要移除的值
int[] expectedNums = [...]; // 长度正确的预期答案。// 它以不等于 val 的值排序。int k = removeElement(nums, val); // 调用你的实现assert k == expectedNums.length;
sort(nums, 0, k); // 排序 nums 的前 k 个元素
for (int i = 0; i < actualLength; i++) {assert nums[i] == expectedNums[i];
}

如果所有的断言都通过,你的解决方案将会 通过

示例 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

实现思路

  1. 首先检查数组是否为空,如果为空则直接返回0。
  2. 使用一个指针 i 从数组的开始位置遍历数组。
  3. 在每次迭代中,检查当前元素 nums[i] 是否等于 val
  4. 如果等于 val,则将 i 位置的元素替换为数组末尾的元素,并且减少数组的有效长度 n
  5. 如果不等于 val,则将 i 指针向前移动。
  6. 重复这个过程直到 i 指针遍历完整个数组。
  7. 返回数组的有效长度 n

源码实现

class Solution {public int removeElement(int[] nums, int val) {// 如果数组为空,直接返回0if (null == nums) {return 0;}// 初始化指针i为0,表示从数组的开始位置遍历int i = 0;// 获取数组的长度int n = nums.length;// 使用while循环遍历数组while (i < n) {// 如果当前元素等于val,则将该元素与数组末尾的元素交换if (nums[i] == val) {nums[i] = nums[n - 1];// 减少数组的有效长度,但不增加i,因为i位置的元素已经改变n--;} else {// 如果当前元素不等于val,则将i指针向前移动i++;}}// 返回处理后的数组长度return n;}
}

复杂度分析

  • 时间复杂度:O(n),其中 n 是数组 nums 的长度。这是因为每个元素最多被访问两次(一次是 i 指针的移动,如果遇到 val,则在交换时末尾的元素会被访问一次),所以总的比较和交换操作是线性的。

  • 空间复杂度:O(1),因为我们只使用了两个额外的变量 in,它们都是固定大小的,与输入数组的大小无关。因此,空间复杂度是常数级别的。

http://www.qdjiajiao.com/news/3054.html

相关文章:

  • 制作简历的免费网站怎么样引流加微信
  • vps服务器怎么做网站网络服务主要包括什么
  • 建筑公司网站怎么设计黄页
  • 凡科可以做淘客网站吗苏州seo推广
  • 建设旅游网站的总结郑州网站建设用户
  • 宝安商城网站建设哪家效益快事件营销的概念
  • 网站可以做章子吗seo网络推广培训
  • 京东内部券网站怎么做厦门人才网官网登录
  • 杭州网站建设专家常见的网络推广方式
  • 网站交互怎么做发稿网
  • 企业如何做网站推广百度推广找谁做
  • 网站建设手机app怎样做网络推广挣钱
  • 百度推广要自己做网站吗新闻头条今日要闻国内
  • 乐陵seo公司慈溪seo
  • 怎么做游戏网站的宣传图片凡科官网免费制作小程序
  • 展展示型网站开发百度推广登录入口官网网址
  • 对中国建设银行网站的评价合肥seo培训
  • 网络营销4cseo技术交流论坛
  • 企业网站改版升级近期舆情热点事件
  • 北京微网站appwin7优化大师
  • 安阳网站推广关键词搜索引擎工具
  • 梅林多丽工业区做网站惠州百度推广优化排名
  • foxpay wordpressseo收费低
  • 如何下载js做的网站西安推广平台排行榜
  • 哪个网站 可以做快递单录入竞价恶意点击报案
  • 做电影网站需要那种服务器网站怎么弄
  • 郑州网站建设工作网站开发的基本流程
  • 2021网站建设前景怎么样和业务多一样的平台
  • 公司网站制作内容湖南做网站的公司
  • 网站建设网站公司seo超级外链发布