• leetcode刷题总结401-450


    401. 二进制手表

      描述:

        二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。

        每个 LED 代表一个 0 或 1,最低位在右侧。

        

       思路:递归回溯法。

    402. 移掉K位数字

      描述:

        

       思路:维护一个栈。来一个数入栈,当栈顶元素大于准备进栈的,那么弹出栈顶。

    403. 青蛙过河

      描述:

        

       思路:动态规划。维护一个map<石头的下表,当前可以跳的步数>

    406. 根据身高重建队列

      描述:

        

       思路:贪心算法。当两个身高相同,拿第二个座标判断。当身高不同,小个在后。然后把这个数组进行插入排序,把第二个坐标作为下表插入list。

    407. 接雨水 II

      描述:

        

       思路:从外围往里进。遇到低于自己的开始计算。

    410. 分割数组的最大值

      描述:

        

       思路: 动态规划即可。dp[nums.leng][m]。复杂度O(n*n*m);;;二分。【最大的数,所有数之和】进行mid计算。mid就是我们划分的输出,如果按照输出划分出来的个数小于m,证明我们划分的太大了,需要缩小值,那么right=mid-1,继续划分。知道left=<right。返回left即可。

     413. 等差数列划分

      描述:

        

       思路:动态规划。具有重叠子问题。定dp[i]为结尾i的子序列个数。状态转移dp[i]=dp[i-1]+1如果公差相等。用一个result去累加每个dp。

    416. 分割等和子集

      描述:

        

       思路:计算总和。target=sum/2。如果sum%2=1直接false。动态规划。如果数组中的某些数字能够使target等于这些,那么就可以。

    417. 太平洋大西洋水流问题

      描述:

        

       思路:递归DFS。

    421. 数组中两个数的最大异或值

      描述:

        

       思路:将这些数字用二进制标志。然后从高位到低位用前缀树存储。异或要求不同才能为1.然后从根节点进行找分叉点。

    423. 从英文中重建数字

      描述:

        

       思路:可以通过统计完成。zero。 出现z为0.

    424. 替换后的最长重复字符

      描述:

        

       思路:滑动窗口。初始1,逐渐增大,然后往后移。容忍k个不同。

    430. 扁平化多级双向链表

      描述:

         

       思路:栈。先判断child是否为空,空就继续往后走。逐渐压栈。输出。

    435. 无重叠区间

      描述:

        

       思路:按照第二维度进行排序。(贪心,最早结束越好。)

    438. 找到字符串中所有字母异位词

      描述:

        

       思路:滑动窗口+hashmap.

    440. 字典序的第K小数字

      描述:

        

       思路:通过前缀树的思路。记录每个节点的所有子节点个数。

    442. 数组中重复的数据

      描述:

        

       思路:遇到一个数字,对index=这个数字的数字加n,然后遍历完后哪个位置>2n,就证明出现两次。

    443. 压缩字符串

      描述:

        

       思路:双指针。

    445. 两数相加 II

      描述:

        

       思路:反转;;;栈。

    446. 等差数列划分 II - 子序列

      描述:

        

       思路:动态规划。dp[i下表][d公差]的个数。状态转移是每个dp[i]下的每个公差计数。

    447. 回旋镖的数量

      描述:

        

       思路:对于每个节点统计对于其他节点的距离。

    448. 找到所有数组中消失的数字  

       描述:

        

       思路:遇到一个数字,对index=这个数字的数字加n,然后遍历完后哪个位置<n,就证明没有出现。

    450. 删除二叉搜索树中的节点

      思路:删除节点的左子树的最右下节点////右子树的最坐下节点。  

  • 相关阅读:
    Android项目打包
    Video Demystified
    C指针与python bytes 互转
    运筹学笔记 3 线性代数基础
    三角网格上的寻路算法Part.2—A*算法
    三角网格上的寻路算法Part.1—Dijkstra算法
    从二维点集重建平面形状-浅议凹包算法
    二值图像膨胀腐蚀算法的几种实现方式
    浅议像素化与体素化Part.1——平面图形像素化
    寻找图像中的局部极大点
  • 原文地址:https://www.cnblogs.com/dhName/p/13285819.html
Copyright © 2020-2023  润新知