27 移除数组中含有目标值的元素,返回数组长度

思路

和26一样,遍历数组,然后判断数组元素的值是否与目标不相等,不相等,给nums[j]==nums[i];j++,最后return j;

如果元素相等于目标值的话,nums[i]=nums[--n]

public int removeElement(int[] nums, int val) {
    int i = 0;
    int n = nums.length;
    while (i < n) {
        if (nums[i] == val) {
            nums[i] = nums[n - 1];
            // reduce array size by one
            n--;
        } else {
            i++;
        }
return n;
}

for实现上面的思路

class Solution {
    public int removeElement(int[] nums, int val) {
        int pivot = nums.length - 1;
        for (int i = 0; i <= pivot; i++) 
            if (nums[i] == val) nums[i--] = nums[pivot--];
        return pivot < 0 ? 0 : pivot + 1;
    }
}
    }
    return n;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • <center>#1 Two Sum</center> link Description:Given an arr...
    铛铛铛clark阅读 2,198评论 0 3
  • 算法思想贪心思想双指针排序快速选择堆排序桶排序荷兰国旗问题二分查找搜索BFSDFSBacktracking分治动态...
    第六象限阅读 3,229评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,768评论 0 33
  • 动态规划 111. 爬楼梯思路类似斐波那契数列注意考虑第 0 阶的特殊情况 272. 爬楼梯 II思路类似上题,只...
    6默默Welsh阅读 2,451评论 0 1
  • 当我发现我已到了成家的年纪 但我的女人呢 当我习惯把实话都变成了童话 那我的单纯呢 这个年纪的我已不再将就 有些事...
    WYL_3281阅读 481评论 1 0