摘要:
思路:经典的dp题目,应该是新建一个dp表,dp[i][j]表示从左上角到grid[i][j]的最短路径,因为只能往下和往右走,因此dp[i][j] = min(dp[i 1][j], dp[i][j 1]) + grid[i][j],经过压缩后可以使用一维的dp表,但是更新每个dp[i][j]只需 阅读全文
摘要:
动态规划问题,稍后更新思路 进行空间压缩: python class Solution(object): def coinChange(self, coins, amount): """ :type coins: List[int] :type amount: int :rtype: int """ 阅读全文
摘要:
思路:跟上一篇的之字形打印思路类似,只不过不用隔层翻转打印 阅读全文
摘要:
思路:之前遇到过层序打印二叉树的题,使用一个队列存储每一层的节点,当一个节点出队列时,他的左右孩子入队列。那么这个问题是在这个问题的基础上加了点限制,因此我们也可以在之前的思路上稍作修改。 首先用curLayer作为队列存储当前层的所有节点,把这一层标记成0或者1, 再用nextLayer层存储从c 阅读全文
摘要:
```python
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution: def isSymmetrical(self... 阅读全文
摘要:
思路: 分4种情况: 1. 当该节点存在右子树时,那么下一个节点一定在右子树中产生 这种情况下又分成两种情况: (1)右子树不存在左分支,那么要找的下一个节点就是右子树的根节点。 (2)右子树中存在左分支,那么不停的寻找左分支的左分支就可以了。 2.当该节点不存在右子树时,那么下一个节点一定在该节点 阅读全文
摘要:
思路:因为重复的节点都要删除,因此需要标记重复开始前的上一个节点,又因为头结点有可能是重复的节点,为了操作方便,我们可以再链表前面设置一个空节点作为头结点,因此需要设置3个指针,第一个head指向头结点。第二个p用来标记重复节点的前面一个节点,第三个cur用来寻找重复的节点,一旦找到p就不移动了,c 阅读全文