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的最大值,然后最里面的元素进行排序,嘻嘻,实现了,牛逼坏了啊。
核心代码: