1 | 在杨辉三角中,每个数是它左上方和右上方的数的和。 |
实现方式差别会引起较大的时间差距
1 | class Solution { |
力扣官方题解
1 | class Solution { |
时间复杂度:O(numRows*numRows)
空间复杂度:O(1)
1 | 在杨辉三角中,每个数是它左上方和右上方的数的和。 |
实现方式差别会引起较大的时间差距
1 | class Solution { |
力扣官方题解
1 | class Solution { |
时间复杂度:O(numRows*numRows)
空间复杂度:O(1)
小鹤双拼方案。
首先打开注册表,找到这个路径
1 | 计算机计算机\HKEY_CURRENT_USER\Software\Microsoft\InputMethod\Settings\CHS |
然后新建一个名为 UserDefinedDoublePinyinScheme0的字符串值,数值数据为
1 | 小鹤双拼*2*^*iuvdjhcwfg^xmlnpbksqszxkrltvyovt |
然后打开控制面板,找到微软拼音的配置页面,把新出现的小鹤双拼设置为默认值。
直接修改注册表的最大意义在于,不需要自己一个个去定义按键和音节的对应关系了。
这样配置之后输入时显示的内容仍然是全拼的字母,为了显示真正的双拼字符,需要在微软拼音输入法中——>常规——>取消自动扩展到全拼的设置
参考文献
作者:在花
链接:https://www.jianshu.com/p/02c4cf1e5225
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
难度: 困难
字典 wordList
中从单词 beginWord
和 endWord
的 转换序列 是一个按下述规格形成的序列:
beginWord
。endWord
。wordList
中的单词。给你两个单词 beginWord
和 endWord
和一个字典 wordList
,找到从 beginWord
到 endWord
的 最短转换序列 中的 单词数目 。如果不存在这样的转换序列,返回 0。
示例 1:
1 | 输入:beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log","cog"] |
示例 2:
1 | 输入:beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log"] |
提示:
1 <= beginWord.length <= 10
endWord.length == beginWord.length
1 <= wordList.length <= 5000
wordList[i].length == beginWord.length
beginWord
、endWord
和 wordList[i]
由小写英文字母组成beginWord != endWord
wordList
中的所有字符串 互不相同利用map维护一个链表,每个链表中对应当前元素的转移状态
1 | class Solution { |
如果使用两个同时进行的广搜可以有效地减少搜索空间。一边从 beginWord 开始,另一边从 endWord 开始。我们每次从两边各扩展一层节点,当发现某一时刻两边都访问过同一顶点时就停止搜索。这就是双向广度优先搜索,它可以可观地减少搜索空间大小,从而提高代码运行效率。
1 | class Solution { |
参考文献
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/word-ladder/solution/dan-ci-jie-long-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1 | 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 |
1 | /** |
力扣官方深度优先
时间复杂度O(N*N)
空间复杂度O(N)
1 | class Solution { |
力扣官方广度优先
时间复杂度O(N*N)
空间复杂度O(N)
1 | class Solution { |
参考文献
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/path-sum-ii/solution/lu-jing-zong-he-ii-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1 | 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 |
1 | /** |
1 | 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 |
利用回溯去重
1 | class Solution { |
回溯的精简写法
1 | class Solution { |
参考文献
1 | 给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。 |
1 | class Solution { |
1 | class Solution { |
参考文献
最好的安排的题解
1 | 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 |
1 | class Solution { |
要解决重复问题,我们只要设定一个规则,保证在填第 idx
个数的时候重复数字只会被填入一次即可。而在本题解中,我们选择对原数组排序,保证相同的数字都相邻,然后每次填入的数一定是这个数所在重复数集合中「从左往右第一个未被填过的数字」
1 | if (vis[i] || (i > 0 && nums[i] == nums[i - 1] && !vis[i - 1])) { |
1 | class Solution { |
参考文献
1 | 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 |
回溯+去重
1 | class Solution { |
1 |
|
时间复杂度为 O(n∗n!)
空间复杂度O(n)
1 | 给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个子序列,其中每个子序列都由连续整数组成且长度至少为 3 。 |
哈希表+贪心算法
哈希表统计每个数字的数量和以某个数字为结尾的序列的数量,
贪心序列中数字的数量,应越大越好(因为剩余的一个数字新建一个序列的失败可能性更大)
1 | class Solution { |
参考文献
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true