6.29 - medium总结3

40. Combination Sum II: 就是在选择是否加入当前值的时候要注意,如果这个值不是循环的开头,而且这个值等于前一个值,则跳过当前值,比如说对于 candidates[i] in 1,1,2,6,那么到第二1的时候则跳过,因为会有重复情况。
43. Multiply Strings: 这题不准把number转化为int,所以我写了两个函数:multiplyChar, addString,一个是计算string和char相乘,一个是计算string和string相加。结果运行速度很慢,不过看了几个快的,感觉还是大量的利用了int函数。不过又看了一下答案,发现有一种简单一些的解法, 就是直接双层循环计算index,也就是说 index i, index j相乘产生的新的数是 i+j, i+j+1
46. Permutations: 经典的backtracking的题目
47. Permutations II: 就是要多记录一个used
48. Rotate Image: i, j -> j , n - 1 - i j, n - 1 - i -> n - 1 - i, n - 1 - j,n - i - 1, n - j - 1 -> n - j - 1, i n - j - 1, i -> i, j 先旋转前面的,最后如果有中间值的话,就再做一次中间值旋转
49. Group Anagrams: sorted后用hash依次比较就可以了
50. Pow(x, n): 分为 x*Pow(x^2, n/2) or Pow(x^2, n/2)两种情况递归运算就可以了
54. Spiral Matrix: 记录top row, bot row, left col, right col的值,然后依次循环并且减少这些值
55. Jump Game: 升级的hard版也是纯手工写出来的,这题就不做了。
56. Merge Intervals: 排序之后,维护一个start,一个end值然后依次合并就可以了

你可能感兴趣的:(6.29 - medium总结3)