LC-27:移除元素

LC-27:移除元素

                        
                        

这个题的实现代码:
    public int removeElement(int[] nums, int val) {
        int sum = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == val) {
                nums[i] = Integer.MAX_VALUE; //给这个元素最大的值,以便在排序中,让他在最后面。 
                sum++;
            }
        }
        Arrays.sort(nums);
        return nums.length - sum;
    }

这些题的有一个特点,就是不要你在创建新的空间存储元素,是在原数组的基础上对数据进行操作,这个是一个难点,但是也不是很难,想清楚了也很好操作。
                        
没有顺序的要求,只要求一点:就是其他的元素(指定元素除外的所有元素)必须在前面,所以,我只需要使用O(n)级别的时间复杂度对里面的所有的元素进行判断,如果一样,就设置为Integer的最大值,然后最里面的元素进行排序,嘻嘻,实现了,牛逼坏了啊。

核心代码:

全部评论

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务