当前位置:   article > 正文

leetcode 热题 100_移动零_leetcode热题100

leetcode热题100

题解一:

        双指针遍历:将非零的值往数组前端依次放置,将放置之后数组后端多余的位置都置为0,参考下图(来源. - 力扣(LeetCode)

  1. class Solution {
  2. public void moveZeroes(int[] nums) {
  3. int index = 0;
  4. for (int i = 0; i < nums.length; i++) {
  5. if (nums[i] != 0) {
  6. nums[index] = nums[i];
  7. index++;
  8. }
  9. }
  10. for (int i = index; i < nums.length; i++) {
  11. nums[i] = 0;
  12. }
  13. }
  14. }

题解二:

        双指针遍历:类似快速排序,以0作为参照点,将不等于0的值放到左边,将等于0的值放到右边 (二者交换),参考下图(来源. - 力扣(LeetCode)

  1. class Solution {
  2. public void moveZeroes(int[] nums) {
  3. int index = 0;
  4. for (int i = 0; i < nums.length; i++) {
  5. if (nums[i] != 0) {
  6. int temp = nums[i];
  7. nums[i] = nums[index];
  8. nums[index] = temp;
  9. index++;
  10. }
  11. }
  12. }
  13. }

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

闽ICP备14008679号