题解 | #草原牛群集合#
草原牛群集合
https://www.nowcoder.com/practice/6fc74519ff9c44288dbcec5db7345ded?tpId=354&tqId=10587746&ru=/exam/oj/ta&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D354
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.最后注意返回的是慢指针即可
本题使用编程语言: Java
高频面试算法题解 文章被收录于专栏
高频面试算法题解,每天一小步,人生一大步,跟着一起刷起来!

查看20道真题和解析