网站空间域名多少钱,国家新闻出版,外链代发,搭建网站服务器今天讲的是力扣题目的题解#xff1a;
力扣题目#xff1a; 72.移除元素
题目描述#xff1a; 给你一个数组 nums 和一个值 val#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。
假设 nums 中不…
今天讲的是力扣题目的题解
力扣题目 72.移除元素
题目描述 给你一个数组 nums 和一个值 val你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。
假设 nums 中不等于 val 的元素数量为 k要通过此题您需要执行以下操作
更改 nums 数组使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。返回 k。
核心思路 使用快慢指针的思路fast指向的是有效元素slow指向的是新数组的下标 第一步 定义一个慢指针slow 指向的是新数组的下标
第二步 定义一个快指针fast 的目的是遍历数组的每一个元素将不是val的有效元素赋值给slow的位置
第三步 利用for循环通过fast来遍历整个数组
第四步 当在循环的过程中遇到不是val的有效元素就将这个有效元素通过nums[fast] 来记录进一步将这个有效元素赋值给slow的位置让slow因为slow代表的在新数组中有效元素存放的位置
代码如下
int slow 0;第一步 定义一个慢指针slow 指向的是新数组的下标
第二步 定义一个快指针fast 的目的是遍历数组的每一个元素将不是val的有效元素赋值给slow的位置
for(int fast 0; fast nums.length; fast)第三步 利用for循环通过fast来遍历整个数组
第四步 当在循环的过程中遇到不是val的有效元素就将这个有效元素通过nums[fast] 来记录进一步将这个有效元素赋值给slow的位置让slow因为slow代表的在新数组中有效元素存放的位置 if(nums[fast] ! val){nums[slow] nums[fast];slow;}完整代码如下所示
class Solution {public int removeElement(int[] nums, int val) {int slow 0;for(int fast 0; fast nums.length; fast){if(nums[fast] ! val){nums[slow] nums[fast];slow;}}return slow;}}