diff --git "a/0211.\346\267\273\345\212\240\344\270\216\346\220\234\347\264\242\345\215\225\350\257\215-\346\225\260\346\215\256\347\273\223\346\236\204\350\256\276\350\256\241/0211-\346\267\273\345\212\240\344\270\216\346\220\234\347\264\242\345\215\225\350\257\215-\346\225\260\346\215\256\347\273\223\346\236\204\350\256\276\350\256\241.py" "b/0211.\346\267\273\345\212\240\344\270\216\346\220\234\347\264\242\345\215\225\350\257\215-\346\225\260\346\215\256\347\273\223\346\236\204\350\256\276\350\256\241/0211-\346\267\273\345\212\240\344\270\216\346\220\234\347\264\242\345\215\225\350\257\215-\346\225\260\346\215\256\347\273\223\346\236\204\350\256\276\350\256\241.py" index db66ffb..60ea337 100644 --- "a/0211.\346\267\273\345\212\240\344\270\216\346\220\234\347\264\242\345\215\225\350\257\215-\346\225\260\346\215\256\347\273\223\346\236\204\350\256\276\350\256\241/0211-\346\267\273\345\212\240\344\270\216\346\220\234\347\264\242\345\215\225\350\257\215-\346\225\260\346\215\256\347\273\223\346\236\204\350\256\276\350\256\241.py" +++ "b/0211.\346\267\273\345\212\240\344\270\216\346\220\234\347\264\242\345\215\225\350\257\215-\346\225\260\346\215\256\347\273\223\346\236\204\350\256\276\350\256\241/0211-\346\267\273\345\212\240\344\270\216\346\220\234\347\264\242\345\215\225\350\257\215-\346\225\260\346\215\256\347\273\223\346\236\204\350\256\276\350\256\241.py" @@ -1,11 +1,11 @@ class WordDictionary(object): - + def __init__(self): """ Initialize your data structure here. """ self.roots = {} - + def addWord(self, word): """ Adds a word into the data structure. @@ -17,7 +17,7 @@ def addWord(self, word): for char in word: node = node.setdefault(char, {}) node["end"] = True - + def search(self, word): """ Returns if the word is in the data structure. A word could contain the dot character '.' to represent any one letter. @@ -27,7 +27,7 @@ def search(self, word): self.res = False self.searchHelper(self.roots, word) return self.res - + def searchHelper(self, dic, word): if not word: self.res |= "end" in dic diff --git "a/0212.\345\215\225\350\257\215\346\220\234\347\264\242II/0212-\345\215\225\350\257\215\346\220\234\347\264\242II.py" "b/0212.\345\215\225\350\257\215\346\220\234\347\264\242II/0212-\345\215\225\350\257\215\346\220\234\347\264\242II.py" index 7ddeda8..c7b72a7 100644 --- "a/0212.\345\215\225\350\257\215\346\220\234\347\264\242II/0212-\345\215\225\350\257\215\346\220\234\347\264\242II.py" +++ "b/0212.\345\215\225\350\257\215\346\220\234\347\264\242II/0212-\345\215\225\350\257\215\346\220\234\347\264\242II.py" @@ -59,10 +59,10 @@ def findWords(self, board, words): for word in words: tree.insert(word) words = set(words) + res = set() def dfs(x0, y0, node, tmpword): visited.add((x0, y0)) - # print tmpword, x0, y0 for k in range(4): x = x0 + dx[k] y = y0 + dy[k] @@ -72,8 +72,8 @@ def dfs(x0, y0, node, tmpword): dfs(x, y, node[board[x][y]], tmpword + board[x][y]) visited.remove((x,y)) - if tmpword in words: - res.add(tmpword) + if tmpword in words: #找到一个单词了 + res.add(tmpword) #用集合避免重复 for i in range(m): for j in range(n): diff --git "a/0213.\346\211\223\345\256\266\345\212\253\350\210\215II/0213-\346\211\223\345\256\266\345\212\253\350\210\215II.py" "b/0213.\346\211\223\345\256\266\345\212\253\350\210\215II/0213-\346\211\223\345\256\266\345\212\253\350\210\215II.py" new file mode 100644 index 0000000..ca4716c --- /dev/null +++ "b/0213.\346\211\223\345\256\266\345\212\253\350\210\215II/0213-\346\211\223\345\256\266\345\212\253\350\210\215II.py" @@ -0,0 +1,26 @@ +class Solution(object): + def rob(self, nums): + """ + :type nums: List[int] + :rtype: int + """ + if len(nums) == 1: + return nums[0] + return max(self.rob2(nums[1:]), self.rob2(nums[:-1])) + + def rob2(self, nums): + """ + :type nums: List[int] + :rtype: int + """ + # return 0 + if not nums: + return 0 + dp = [0 for _ in nums] + dp[0] = nums[0] + for i in range(1, len(nums)): + if i == 1: + dp[i] = max(dp[0], nums[i]) + else: + dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]) + return dp[-1] \ No newline at end of file