leetcode 20. 有效的括号
解题思路
使用 “栈” 模拟即可
代码
1 | class Solution: |
使用 “栈” 模拟即可
1 | class Solution: |
状态:
dp[i] = 组成金额i需要的最小金币数
方程:
dp[i] = min(dp[i - coin[x]]) + 1
0<=x<len(coins)
1 | class Solution: |
“名人” 定义:
其他所有 n - 1 个人都认识他/她,而他/她并不认识其他任何人
若a不认识b => b一定不是名人,a可能是名人
若a认识c => a一定不是名人,c可能不是名人
O(n)
调用 knows 的最大次数为 3 * n
1 | # The knows API is already defined for you. |
判断每个节点的值是否在 (l, r) 范围内 (开区间)
1 | # Definition for a binary tree node. |
定义状态:
dp[i][j] := 从 (0, 0) 走到 (i, j) 不同的路径数目
动态规划转移方程:
dp[i][j] = dp[i][j-1] + dp[i-1][j]
状态压缩:
dp[j] += dp[j-1]
1 | class Solution: |
遍历数组,比较元素区间即可
1 | class Solution: |
一个对象的创建,依赖于多个不同的工厂方法,如何使这个对象的创建更容易呢?
将多个工厂方法组合在一起,作为一个抽象工厂
根据用户年龄,决定玩儿童游戏(青蛙吃虫子),还是成人游戏(巫师对抗怪物)
1 | class Frog: |
please input age: 18
—— Wizard World ——
user the Wizard battles against an evil ork and kills it!
please input age: 10
—— Frog World ——
user the Frog encounters a bug and eats it!
前序遍历 序列化 二叉树 为 字符串
前序遍历 反序列化 字符串 为 二叉树
注意叶子节点的处理
O(n) n为节点数
O(n) n为节点数
1 | # Definition for a binary tree node. |
创建对象的代码在许多不同的地方,导致难以跟踪应用中创建的对象
基于单一的函数创建对象:根据传入参数,创建出想要的对象。
(外部不需要知道对象的实现细节)
XXX数据存储于XML文件和JSON文件中,目前需要获取XXX数据
1 | import os |
JSON Data=[{‘title’: ‘Ha’}]
XML Data=<xml.etree.ElementTree.ElementTree object at 0x7fcd15d79a60>
Cannot extract data from 20210523/test.ini
Abnormal Data=None