Leecode
Baoxin_UCAS
这个作者很懒,什么都没留下…
展开
-
机考---硬币分组,组和差值最小
有一组硬币,数量不超过100枚。每个硬币的面值范围是1~500. 对这组硬币进行分组,使得每组硬币,其面值总和的差距最小。 def min_diff(n, nums): nums = sorted(nums) res1 = [] res1_sum = 0 sum_val = sum(nums) half_val = sum_val // 2 if nums[-1]>500 or nums[0]<1: return -1 .原创 2021-04-22 20:47:33 · 587 阅读 · 0 评论 -
leecode5. 最长回文子串--极简思维之中心扩散
理解两个概念: 1. 回文:正着和反着读一样,那么肯定有个中心了 2. 中心扩散:从中心向两边走,每一步的字符都一样 那么第一步:核心就是中心在哪了,第二步,走两步试试。 看下面例子: s = 'aa' center_point = 0.5 #字符串长度为偶数,中心点在'a'和'a'之间,索引为0.5的地方, #那么从索引为0和1的地方向外扩散就可以了 s = 'aba' center_ppoint = 1 #字符串长度为奇数,中心点在'b',索引为1的地方, #那么从索引为0和2的地方向外扩原创 2021-02-27 13:15:51 · 150 阅读 · 1 评论 -
LeetCode 22. Generate Parentheses 生成括号 Python
括号生成原则: 左括号开头,右括号结尾 左右括号数目一致 从左向右走,左括号的数目必须大于等于右括号数目(有效括号) 因此,看一下利用二叉树生成括号过程:我们要随时注意剪枝操作: n=2: n=3: 可以看到在遍历的时候,剪枝可以分为两种情况: 1. 红色X:左括号超过预设数目 2. 绿色X:右括号多于左括号 因此我们可以得到: 1. 只要左括号数目不多于预设值,那么即可...原创 2018-12-03 16:21:22 · 257 阅读 · 1 评论