做英文的小说网站有哪些,怎么样网站速度快,网络购物商城系统,免费的建站软件推荐下载文章来源#xff1a; https://blog.csdn.net/weixin_45630258/article/details/132689237 欢迎各位大佬指点、三连 1、题目#xff1a;
给你一个数组 nums和一个值 val#xff0c;你需要原地移除所有数值等于 val 的元素#xff0c;并返回移除后数组的新长度。
不要使用…文章来源 https://blog.csdn.net/weixin_45630258/article/details/132689237 欢迎各位大佬指点、三连 1、题目
给你一个数组 nums和一个值 val你需要原地移除所有数值等于 val 的元素并返回移除后数组的新长度。
不要使用额外的数组空间你必须仅使用 O(1) 额外空间并原地修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 2、分析特点
题目要求原地移除移除所有val的元素则 结果数组一定比原数组的长度更短 。要求原地移除 我们可以把结果数组直接写在原数组上 并且结果数组是那些非等于val的元素组成的从位置0开始到某个位置作为结果数组而原数组需要从0开始到整个数组的长度进行遍历 使用双指针。结果数组的指针[0, left] 结果数组的目的是收集起来结果他是left一步步进行加加的。原数组的指针[0, right]right 原数组长度right 是用于指向原数组当前的元素是否不会等于val可以被收集。 3、代码 4、复杂度分析 时间复杂度O(n)其中 n 为序列的长度。我们只需要遍历该序列至多两次。 空间复杂度O(1)。我们只需要常数的空间保存若干变量。 5、总结
本题比较简单只需要抓住题意要求原地移除原地结果只能输出到原数组上面移除则结果数组长度比原数组更短。利用结果数组从0开始left进行收集而原数组使用right指针从0开始遍历判断当前元素是否可以被收集起来。 目的就是收集所有符合条件的元素。 如果本文对你有帮助的话记得给一乐点个赞哦感谢