![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 54
bobyeoh
这个作者很懒,什么都没留下…
展开
-
[LeetCode] Word Ladder
1. BFS搜索 (1)维护一个可到达的单词列表,初始化时单词列表中只有beginWord。 (2)如果可到达单词表不为空,遍历此单词列表中的每个单词,依次对单词中每个字符做变换(包括字符本身,共26种变换)。 (a)如果在变换过程中出现了endWord,搜索结束。 (b)对变换出的单词,如果wordList中存在此单词,从wordList中删除,并加入新生成的单词原创 2017-02-17 11:12:34 · 447 阅读 · 0 评论 -
[LeetCode] Reconstruct Itinerary
1. 首先创建搜索结构树,使用一个map >结构表示。由于结果对顺序有要求,这里使用multiset用于自动按照字典序排序。2. 深度优先搜索(DFS)。选取一个可到达机场进行搜索,并将此机场从可到达机场列表删除。由于multiset已经排好序,因此从起始位置开始搜索。每个机场的可到达列表为空后,将机场推入日程(Itinerary),此处的日程实际上为逆序。对于一个机场的可原创 2017-03-08 12:14:25 · 311 阅读 · 0 评论 -
[LeetCode] Matchsticks to Square
1. 使用4个数的数组分别记录每条边的增长情况2. 遍历数组,如果一条边加上遍历的数不会超过划分边长,则加入这条边。3. 递归处理下一个数。终止条件是遍历完后,4条边长度相等,返回true,否则返回false。如果递归结果为false,则加步骤2中遍历到的数加入另外一条边,继续递归。4. 一个加速的措施是遍历之前先将数组按照降序排列,这样每次选择是都优先选择较大的树加入一条边,时间原创 2017-03-10 10:08:37 · 311 阅读 · 0 评论 -
[LeetCode] Palindrome Partitioning II
一. 动态规划记录子串是否是回文,以及当前的最小分割1. 从后往前遍历字符串,得到当前遍历位置到结尾的一个子串[i...n-1],初始化最小分割为当前子串长度减12. 对于当前子串,从前往后遍历,得到i到当前遍历位置j的一个子串[i...j],这个子串是否是回文依赖于s[i] == s[j]和子串[i+1...j-1],如果当前子串是回文,则更新最小分割为[i...n-1]和[j+1...原创 2017-03-12 18:00:05 · 216 阅读 · 0 评论 -
[LeetCode] Candy
贪心策略1. 正向遍历一遍ratings数组,如果后边邻居的rating更高,则邻居的糖果数+1;2. 反向遍历一遍ratings数组,如果前边邻居的rating更高,则邻居的糖果数取当前儿童糖果树+1和前边邻居糖果数中的较大值。3. 所有糖果数量求和,返回结果。int candy(vector& ratings) { int size = ratings.size原创 2017-04-25 16:35:40 · 194 阅读 · 0 评论