美文网首页
7.8-Contest 40-小结

7.8-Contest 40-小结

作者: Get_it | 来源:发表于2017-07-28 12:15 被阅读0次

    637. Average of Levels in Binary Tree

    这道题比较简单,只需要对 tree 进行 level traversal 的同时,计算每层的 average value。

    640. Solve the Equation

    式子中没有括号,只有加减,而且最多只有一次项。把式子以 '=' 分为两部分,分别计算左式和右式的 x 的系数和常数项,然后只需要比较左右式的 x 的系数和常数项,即可得到解。需要注意式子中出现负号的情况。

    此次完成了前两道题

    638. Shopping Offers

    可以使用 recursiondynamic programming 的方式对这道题进行求解。
    recursion:
    1)依次选用一个 special(最多100次),然后 recursive call,最多6层
    recursive call。
    2)可以先算出不使用 special 的价格,然后依次尝试各种 special,如果能使价格降低就 recursive call,这样做可以做实现剪枝。
    (还可以使用hashmap<needs, total>,把之前各种情况的needs作为key,花费作为value记录下来,避免重复计算。)
    dynamic programming:
    需要将高维 dp 转换为一维的,方便计算,而且主要是因为这里 item 的种类个数不确定,所以维度不确定。可以写 encode 和 decode 函数处理维度转换。接下来,只需要对有值的单元,进行各种尝试,求得之后单元对应的值(花费)。

    639. Decode Ways II

    使用 dynamic programming 的思想,分为两种情况:只以当前字符作为一个字母;以当前和前一个,这两个字符作为一个字母。只不过这道题在每种情况中,细分情况的时候需要考虑'*'。
    优化:可以只使用两个变量来保存前一个,和前前一个的情况个数,用于当前的计算。时间复杂度从 O(n) 优化到 O(1)。
    注意:这两个变量最好是 long ,防止溢出。

    相关文章

      网友评论

          本文标题:7.8-Contest 40-小结

          本文链接:https://www.haomeiwen.com/subject/mycmkxtx.html