上海网站建设包括哪些,白银区住房和城乡建设局网站,知名网站开发企业,网络公司是做什么的问题描述
给你一个数组 nums 和一个值 val#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。
假设 nums 中不等于 val 的元素数量为 k#xff0c;要通过此题#xff0c;您需要执行以下操作#x…问题描述
给你一个数组 nums 和一个值 val你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。
假设 nums 中不等于 val 的元素数量为 k要通过此题您需要执行以下操作
更改 nums 数组使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。返回 k。
实现代码
class Solution {public int removeElement(int[] nums, int val) {int sizenums.length;int i;int j;for(isize-1;i0;i--){if(nums[i]val){for(ji1;jsize-1;j){nums[j-1] nums[j];}size--;}}return size;}
}
或者
用双指针实现
class Solution {public int removeElement(int[] nums, int val) {int slow0;for(int fast0;fastnums.length;fast){if(nums[fast]!val){nums[slow]nums[fast];slow;}}return slow;}
}