![](https://img-blog.csdnimg.cn/20190928154454545.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
leetcode 题目
文章平均质量分 85
leetcode上的题目答案和解析,自己的一些想法。
xfdelovely
这个作者很懒,什么都没留下…
展开
-
94.二叉树的中序遍历 python3
题目:思路:深度优先代码:# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Nonefrom collections i...原创 2019-10-20 21:11:09 · 172 阅读 · 0 评论 -
494.目标和 python3
题目:思路:深度优先法代码:class Solution: def findTargetSumWays(self, nums: List[int], S: int) -> int: visited = {} def DFS(index, res): if index < l...原创 2019-10-20 19:49:12 · 313 阅读 · 0 评论 -
133.克隆图 python3
题目:思路:深度遍历法代码:"""# Definition for a Node.class Node: def __init__(self, val, neighbors): self.val = val self.neighbors = neighbors"""class Solution: def cloneGraph(s...原创 2019-10-18 23:13:21 · 122 阅读 · 0 评论 -
739.每日温度 python3
题目:解析:题目等价于求右边比自己的第一个数,与自己的距离。采用单调栈,单调栈就是可以求左边或者右边,最大或者最小的第一个数。代码:class Solution: def dailyTemperatures(self, T: List[int]) -> List[int]: result = [0] * len(T) ...原创 2019-10-18 19:19:02 · 136 阅读 · 0 评论 -
150.逆波兰表达式 python3
题目:解析:使用栈来存储运算数,使用python中的eval表达式来计算,注意除法的小数转换为整数。代码:class Solution: def evalRPN(self, tokens: List[str]) -> int: operator = set(['*', '/', '+', '-']) sta = [] ...原创 2019-10-18 19:15:27 · 154 阅读 · 0 评论 -
155.最小栈 python3
题目:思路:设计辅助栈,以空间来换取时间。代码:class MinStack: def __init__(self): """ initialize your data structure here. """ # 数据栈 self.data = [] # 辅助栈 ...原创 2019-10-17 20:56:24 · 141 阅读 · 0 评论 -
279.完全平方数 python3
题目:解析:广度遍历代码:import queueclass Solution: def numSquares(self, n: int) -> int: direction = set([i**2 for i in range(1, int(n**0.5)+1)]) if n in direction: re...原创 2019-10-16 11:23:35 · 192 阅读 · 0 评论 -
752.打开转盘锁
题目:解析:广度遍历,求最短路径问题代码:from queue import Queueclass Solution: def openLock(self, deadends: List[str], target: str) -> int: if "0000" in deadends: return -1 ...原创 2019-10-15 21:13:23 · 96 阅读 · 0 评论 -
200.岛屿数量 python3
题目:解析:采用广度遍历方法代码:import queueclass Solution: def numIslands(self, grid: List[List[str]]) -> int: x_length = len(grid) y_length = len(grid[0]) if x_length > 0 else 0...原创 2019-10-15 19:03:05 · 288 阅读 · 0 评论 -
71.简化路径 python3
题目:解析:先对字符串进行处理,分割,然后如果进行遍历判断,如果遇到"…",就将栈顶元素弹出,否则就放入栈中,最后再将list转换为字符串。代码:class Solution: def simplifyPath(self, path: str) -> str: stack = [] l = path.split('/')...原创 2019-10-09 21:04:51 · 110 阅读 · 0 评论 -
42.接雨水 python3
题目:解析:这道题有两类解法,横向和纵向。纵向:只需要求解左边的最高值和右边的最高值,两者中较小的一个减去当前的高度,即为当前格子纵向的雨水量。横向:如果当前的格子高度大于前一个,小于前面第二个,则可以确定前一个的一段横向的积水量。代码:class Solution: def trap(self, height: List[int]) -> int: ...原创 2019-10-09 20:01:22 · 318 阅读 · 0 评论 -
20.有效的括号 python3
题目:解析:使用栈的方法,依次遍历字符串,并获取栈顶的元素,如果栈顶的元素与字符串的字符为一对,则弹出栈顶的元素,否则将字符串的字符放入栈中。代码:class Solution: def isValid(self, s: str) -> bool: map = {")":"(", "}":"{", "]":"["} st...原创 2019-10-08 19:56:11 · 118 阅读 · 0 评论 -
3.无重复字符的最长子串 python3
题目:解析:哈希表:对于这种需要频繁的查找和增加的操作,使用哈希表比使用list列表高效非常非常多,所以本题使用哈希表进行求解。我们设置一个字符串的起始标识start来标识当前判断的字符串的起始位置,在遍历的过程中,判断字符是否存在字典中,如果存在,同时也应该判断索引是否大于start,如果是的话,那么当前判断的字符串迎来了重复字符,所以结束,比较字符串的长度和之前记录的最大长度max...原创 2019-09-27 15:32:00 · 246 阅读 · 2 评论 -
1.两数之和 python3
题目:解析:暴力法:直接简单粗暴的遍历这个list列表,通过两个for循环,寻找满足的数,但是这样的话,list的遍历效率比较低,执行速度较慢,大概1000ms,打败33%的人。哈希表:在python中,字典就是通过哈希表实现的,所以,要想使用哈希表,直接使用字典dictionary即可,执行只需要60ms,打败90%的人。代码:class Solution: def tw...原创 2019-09-27 14:31:46 · 223 阅读 · 0 评论