1 | 有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。 |
1 | class Solution { |
1 | 有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。 |
1 | class Solution { |
1 | 无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。 |
我们求整个字符串的排列,可以看成两步:
首先求所有可能出现在第一个位置的字符,即把第一个字符和后面所有的字符交换,求后面所有字符的排列。
仍把后面的所有字符分成两部分:后面字符的第一个字符,以及这个字符之后的所有字符。然后把第一个字符逐一和它后面的字符交换
1 | class Solution { |
1 | class Solution { |
参考文献
作者:LineCutFeng
链接:https://leetcode-cn.com/problems/permutation-i-lcci/solution/shu-wo-zhi-yan-zai-zuo-de-ge-wei-du-shi-hao-yang-d/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1 | 递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。 |
1 | class Solution { |
1 | class Solution { |
参考文献
作者:yuruiyin 来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1 | 幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。 |
1 | class Solution { |
代码实现如下:
1 | public List<List<Integer>> subsets(int[] nums) { |
1 | public List<List<Integer>> subsets(int[] nums) { |
1 | nums = [1, 2, 3],长度为3,取看成是1,不取看成是0. |
1 | class Solution { |
1 | public static List<List<Integer>> subsets(int[] nums) { |
参考文献
1 |
直接回溯会超时,dfs 的时候加一个 visited 标识一般是为了防止死循环,但这个题目只能向右向下走,所以不会死循环,所以很多人就不加 visited 了。
但其实这个题目仍然需要 visited 标识,因为我们可以通过不同的路径到达同一个位置:比如身处位置 (0,0) 时,可以通过”先右再下”和“先下再右”两种方式到达 (1,1)。
使用 visited 就可以确保那些“已被试过无法到达目标”的位置不会再次被尝试,从而提升效率,避免超时。
1 | class Solution { |
1 | class Solution { |
1 | 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 |
对题目的理解不够,无重叠区间并不是连续区间,给出的样例迷惑人,无需考虑区间是否连续
对区间的右边界进行排序,冲突时选择右边界小的那个,这样右边就可以容下更多的区间
1 | class Solution { |
1 | class Solution { |
参考文献
作者:LeetCode-Solution来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1 | 下一个数。给定一个正整数,找出与其二进制表达式中1的个数相同且大小最接近的那两个数(一个略大,一个略小)。 |
1 | class Solution { |
1 | 二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。 |
1 | class Solution { |
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为”按权相加”法。
十进制整数转换为二进制整数采用”除2取余,逆序排列”法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
十进制小数转换成二进制小数采用”乘2取整,顺序排列”法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
1 | 0.7=(0.1 0110 0110...)B |
参考文献
1 | 给定一棵二叉树,其中每个节点都含有一个整数数值(该值或正或负)。设计一个算法, |
不求树的深度的修改
1 | class Solution { |
分别计算当前的节点和左子树与右子树的满足路径和等于sum的路径数量,并对三个计算的结果求和
1 | class Solution { |
1 | /** |
参考文献
作者:dadou来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者:geguanting来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
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