做网站管理系统,公司介绍模板简短,电子商务seo是什么,昆明网站设计制作公司文章目录 移除元素解题思路 移除元素
给你一个数组 nums 和一个值 val#xff0c;你需要原地移除所有数值等于 val 的元素#xff0c;并返回移除后数组的新长度。
不要使用额外的数组空间#xff0c;你必须仅使用 O(1) 额外空间并原地修改输入数组。
元素的顺序可以改变。… 文章目录 移除元素解题思路 移除元素
给你一个数组 nums 和一个值 val你需要原地移除所有数值等于 val 的元素并返回移除后数组的新长度。
不要使用额外的数组空间你必须仅使用 O(1) 额外空间并原地修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
示例 1: 给定 nums [3,2,2,3], val 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。 你不需要考虑数组中超出新长度后面的元素。
这种题想到第一种暴力循环使用两个for循环嵌套判断条件执行。
第二种双指针或者叫快慢指针来完成。接下来演示如何快慢指针
解题思路
快慢指针慢指针对应着返回的结果快指针不断的向前寻找正确的值。正确的值就是不等于val的说起来比较绕口我们来看看代码
class Solution {public int removeElement(int[] nums, int val) {//校验if(nums.length 0){return 0;}//定义快慢指针int slowlyIndex 0;int fastIndex 0;for(; fastIndex nums.length; fastIndex){if(nums[fastIndex] ! val){nums[slowlyIndex] nums[fastIndex];}}return slowlyIndex;}
}看代码中快指针一步一步的向前搜索慢指针用于锁定正确的值。 我是小辉24 届毕业生。当下是找工作ing欢迎关注持续分享。