leetcode刷题总结601-650

606. 根据二叉树创建字符串

  描述:

    

   思路:缕清关系,写出递归方程式。

611. 有效三角形的个数

  描述:

    

   思路:排序。固定两个元素,然后二分找满足的最小边。

621. 任务调度器

  描述:

         

   思路:先统计每个字符的个数。然后贪心的去选择前n高的去运行。

623. 在二叉树中增加一行

  描述:

    

   思路:广度优先找到第d-1层。然后开始插入结点。

629. K个逆序对数组

  描述:

    

   思路:动态规划。当增加一个元素的时候,dp[i][k]表示给定I(n),有K个逆序对的个数。dp[i][k]=dp[i-1][k]+dp[i-1][k-1]+.....dp[i-1][k-i+1]

630. 课程表 III

  描述:

    

   思路:贪心选deadlines最先截至的,如果遇到冲突了,看当前的持续时间和已经存储的持续时间的最大值谁大,再决定是否弹出大顶堆的头。

632. 最小区间

  描述:

    

   思路:

    对每个树存一个《数字,所属数组》进行排序,然后滑动窗口。

636. 函数的独占时间

  描述:

    

   思路:栈。

638. 大礼包

  描述:

    

   思路:递归。递归的时候先计算本来原价多少,然后递归min.min的时候每次遍历特价时候,先去克隆一个需要买的数量,然后用这个克隆去减去特价数量后递归最小值。

639. 解码方法 2

  描述;
    

   思路:动态规划。需要考虑前一个元素为*,前2个元素为*等等情况考虑细致。

640. 求解方程

  描述:

    

   思路:分隔。求x系数和常熟。

646. 最长数对链

  描述:
    

   思路:动态规划。dp[i]表示以pair[i]结尾的最长连的长度。当j>i,dp[j][0]>dp[i][1]的时候,对dp[j]进行遍历。

647. 回文子串

  描述:

    

   思路:动态规划。dp[i][j]字符串从i-j是否为回文。一个字符是,两个字符判断相等,三个以上dp[i][j]=dp[i+1][j-1]如果相等。否则直接flase.

648. 单词替换

  描述:
    

   思路:词典树。

649. Dota2 参议院

  描述:

    

   思路:队列。先统计次数。然后遇到一个R/D,将后面的D/R去掉,然后再出队列,入队列。知道某一个势力数量为0.

650. 只有两个键的键盘

  描述:
    

   思路:动态规划。dp[i][缓存中数量]=min(dp[i-j][j]+1,dp[i][j])

原文地址:https://www.cnblogs.com/dhName/p/13311204.html