前言
欢迎关注我的 Github,如果觉得有帮助,请点个 star
哟,目前主要在更 leetcode题解(Java版)
和 剑指offer题解(Java版)
,可以点个star
。
文本已收录至我的GitHub仓库,欢迎Star:awesome-java-notes
Remove Element
Question:Translate:Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed.
It doesn’t matter what you leave beyond the new length.
在一个数组里面移除指定 value,并且返回新的数组长度。 这题唯一需要注意的地方在于 in place,不能新建另一个数组。
Problem-solving ideas:
使用两个游标 i 和 j,遍历数组,遇上非 value 则用 j 记录位置,同时递增 i,直到下一个非 value 出现,将此时 i 位置对应的值复制到 j 位置上,增加 j,重复上述过程直到遍历结束。此时返回 j 的值即为新的数组长度。
The code:
class Solution {
public int removeElement(int[] nums, int val) {
int i = 0;
int j