zoukankan      html  css  js  c++  java
  • 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后移;

      依次循环,得出结果

      

  • 相关阅读:
    __init__ 构造行数的用法
    Android SDK下载安装及配置教程
    每条用例执行10次
    Python Json模块中dumps、loads、dump、load函数介绍
    Python接口测试实战2
    linux 下添加环境变量 和刷新
    mysql 练习题笔记
    http请求脚本排错指南
    docker命令及其常用事项
    anaconda 环境
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13132158.html
Copyright © 2011-2022 走看看