当前位置:   article > 正文

每日LeetCode——数组去重_去重数组并排序,一个数组nums和一个值val升序

去重数组并排序,一个数组nums和一个值val升序

 

1、给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

  1. public int removeElement(int[] nums, int val) {
  2. //利用双指针,一个i 一个j 当j指向的值不是给定的值时,
  3. //则需要将此值按照下标 i (因为j比i跑得快,只有在不出现指定元素时i才会往后移,否则只有j会
  4. //往后移,直到j再一次寻找到与指定值不同的值,而且i此时刚好指向的是第一个与指定元素相同的
  5. //值)依次重排数组元素。
  6. int i = 0;
  7. for (int j = 0; j < nums.length; j++) {
  8. if (nums[j]!=val) {
  9. nums[i] = nums[j];
  10. i++;
  11. }
  12. }
  13. return i;
  14. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/50586
推荐阅读
相关标签
  

闽ICP备14008679号