摘要: 在写 “广度优先遍历” 的时候,要注意一点:所有加入队列的结点,都应该马上被标记为 “已经访问”,否则有可能会被重复加入队列。 如果等到队列出队的时候才标记 “已经访问”,事实上,这种做法是错误的。因为如果不在刚刚入队列的时候标记 “已经访问”,相同的结点很可能会重复入队 from queue im 阅读全文
posted @ 2020-02-07 23:09 阿牧遥 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 除法求值,先建立树,然后使用递归,主要不要进入环。 后来发现x/x = 1.0这条边可以不用,这样只要记录node是不是访问过就可以。 class Solution: def calcEquation(self, equations: List[List[str]], values: List[fl 阅读全文
posted @ 2020-02-07 21:09 阿牧遥 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 调用多次readN,所以要重复使用internal buffer """ The read4 API is already defined for you. @param buf, a list of characters @return an integer def read4(buf): # B 阅读全文
posted @ 2020-02-07 17:56 阿牧遥 阅读(126) 评论(0) 推荐(0) 编辑
摘要: O(n^2)的方法,最后一个case超时。需要用kmp方法或者manacher方法才能O(n),先忽略了。 class Solution: def isPalindrome(self, sub: str) -> bool: for i in range(len(sub) // 2): if sub[ 阅读全文
posted @ 2020-02-07 17:45 阿牧遥 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 先用read4拷贝到buf4,然后从buf4里读: """ The read4 API is already defined for you. @param buf, a list of characters @return an integer def read4(buf): # Below is 阅读全文
posted @ 2020-02-07 15:27 阿牧遥 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 滑动窗口,原来可以通过循环嵌套循环的方式实现。 class Solution: def totalFruit(self, tree: List[int]) -> int: result = 0 fruitDict = {} i = 0 # assert i <= j for j in range(l 阅读全文
posted @ 2020-02-07 00:01 阿牧遥 阅读(172) 评论(0) 推荐(0) 编辑