import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param val int整型 * @return int整型 */ public int remove_cows (int[] nums, int val) { // 快慢指针 int slow = 0; int fast = 0; // 只要值不相等就赋值给nums[slow++]的下标,slow用来存放值不等于val的,fast用来遍历全部数组 while(fast<nums.length){ if(nums[fast]!=val){ nums[slow++] = nums[fast]; } fast++; } // 最终返回的slow就是去除val值后的数组长度 return slow; } }
本题知识点:
1.数组和快慢指针
2.或者可以用哈希表之类的,但没必要,要求原地修改
本题解法分析:
1.根据快慢指针进行遍历然后赋值
2.值不相等就赋值给nums[slow++]的下标,slow用来存放值不等于val的,fast用来遍历全部数组
3.最后注意返回的是慢指针即可