zoukankan      html  css  js  c++  java
  • leetcode【dynamic】【1】

    338. Counting Bits


    当前数二进制末位如果是1,加上一次,整体向右移动一位后,新的值是当前数的1/2,它已经被求过了,直接加上去就好了。

     343. Integer Break


    常规操作存在一种欠考虑的地方,下次自己要先跑两测试再run。

    On的方法是:n>4的情况下,3^n是最大的,所以每次抽离3出来乘。

    96. Unique Binary Search Trees 


    还好自己肉眼跑了,比较成功

    322. Coin Change 


    得到的经验就是能用自底向上就用自底向上,同样的逻辑自底向上可以快出两倍。。

    221. Maximal Square 


    我的想法是先计算出长度由最小到最大的正方形的面积,3*3的可以由4个2*2的决定,所以遍历全部,每计算一个n*n的正方体可由4个(n-1)*(n-1)来决定,值得一提的是这四个取值是一个角的四个坐标就够覆盖一整个要求的正方形。时间复杂度m*m*n。

    最优解是时间复杂度是m*n,其实特点有上述的一部分。它取的四个值是一个正方形的右下角,具体看这里

    121. Best Time to Buy and Sell Stock


    晚上了,看题目以为和mim一样的要求,结果不是。。思路和以为一样有些记录可以转变为记录最终想利用记录的东西的计算的结果。

     368. Largest Divisible Subset


    这道题不会,要求的是集合内相互之间存在着可以取余为0,那么先进行排序,一个数的约数集合并不一定是答案,但是通过递归,遍历它约数的答案+1取最大就是该数的答案。

    416. Partition Equal Subset Sum


    这道题比我想象难了点,首先简单拆分成两部分。得到目标的值。一开始想过全组合,利用了位图的思想但是int类型明显字节个数不够,采取递归方式也不行。想到01背包问题,明显知识储备不够,的确是01背包问题。多训练,01表格--》优化成一列足够,注意遍历顺序,从左到右还是从右到左。

    474. Ones and Zeroes


    比较典型01背包问题,从低向上,优化空间,那么每一次的for循环注意是从大到小,这样才能保证取的是”前一个递归“

    53. Maximum Subarray 


    动态规划,正常思路是每后面增加一位的影响,但是有一点值得注意是记录以最后一位为结尾的值,实际上取得结果看似在整个数组中的“中间”,实际是某一个数组的最末位那一段,所以递归所有数组的最后一段就是。

    72. Edit Distance


     

    动态递归的初始化考虑欠妥。

  • 相关阅读:
    ASCII,Unicode,UTF
    C#值类型和引用类型2
    C#中使用Foreach
    CSS基础(2)
    CSS基础
    HTML基础
    MySQL高级
    MySQL和Python交互案例练习(2)
    MySQL和Python交互案例练习(1)
    外键SQL语句的编写
  • 原文地址:https://www.cnblogs.com/GrimReaper/p/9278569.html
Copyright © 2011-2022 走看看