• Day 3


    第二十六题:

    给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

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

    来源:力扣(LeetCode)

    1、可以定义两个指针 i 和 j ,i指向数组下标0,j指向数组下标1;

      判断此时 i 和 j 所指向的数据是否相同;

      如果相同,则 j 后移一位,如果不同,则将 i++,再把 j 指向的数据复制到 i 位置上;

      依次循环,最后返回 i+1 个数的数组元素。、

      

    2、还可以用另一种非双指针的方法,可以定义一个参数 len 来记录两者之间的重复个数,当在遇到下一个不同的元素时,将这个元素向前移动 len 位。

      

    第283题:

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。(来自LeetCode)

    1、用两个指针 i 和 j 指向首位,

      然后用 i 下标遍历整个数组,当遇见nums[i]不等于 0 时,将i和j下标所指元素交换;(若首位都不为0,此时i和j上的元素交换无意义,只有当它们同时指向为0时,它们才会错开)

      循环下去,最后得出结果。

       

    2、用i和j指向数组0下标,(遍历数组,当遇见不为0的数,将其移到前面,下标后移)

      利用i遍历数组,一开始i和j都指向0下标,当此元素为0时,i后移;

      直到当i下标指向的元素不为0时,将该元素赋给j下标元素;j后移;

      依次循环,得出结果

      

  • 相关阅读:
    无线网络安全一瞥
    静态代码分析与代码质量安全
    构建移动应用测试(一)
    移动应用App测试与质量管理一
    企业商务差旅信息化管理与移动App
    身份管理系统与解决方案
    微信指数是怎么调取数据来源的
    微信正式上线“微信指数”,基于微信大数据分析的移动端指数
    新版微信小程序即将上线 新增微信支付功能
    微信公众号留言置顶功能上线
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13132158.html
Copyright © 2020-2023  润新知