当前位置:   article > 正文

每日一题 — 移动零

每日一题 — 移动零

力扣链接:283. 移动零 - 力扣(LeetCode)

思路:利用双指针将数组分为三个区间,三个区间分别表示的是:非0元素、0、待处理元素

当arr[cur]  != 0时

[0,dest]区间就需要加一,所以dest++

然后再交换arr[dest]  ,arr[cur]

 代码如下:

  1. class Solution {
  2. public void moveZeroes(int[] nums) {
  3. for(int cur = 0, dest = -1; cur < nums.length; cur++){
  4. //非 0 就让dest++,再交换数值
  5. if(nums[cur] != 0){
  6. dest++;
  7. int tmp = nums[dest];
  8. nums[dest] = nums[cur];
  9. nums[cur] = tmp;
  10. }
  11. }
  12. }
  13. }

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

闽ICP备14008679号