1 | 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 |
自顶向下
1 | /** |
自底向上
1 | /** |
1 | 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 |
1 | /** |
1 | /** |
考虑 A 和 B 两数相乘的时候我们如何利用加法和位运算来模拟,其实就是将 B 二进制展开,如果 B 的二进制表示下第 ii 位为 1,那么这一位对最后结果的贡献就是 A∗(1<<i) ,即 A<<i。我们遍历 B 二进制展开下的每一位,将所有贡献累加起来就是最后的答案,这个方法也被称作「俄罗斯农民乘法」,感兴趣的读者可以自行网上搜索相关资料。这个方法经常被用于两数相乘取模的场景,如果两数相乘已经超过数据范围,但取模后不会超过,我们就可以利用这个方法来拆位取模计算贡献,保证每次运算都在数据范围内。
1 |
|
参考文献
1 | 作者:LeetCode-Solution |
1 | 求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 |
以逻辑运算符 && 为例,对于 A && B 这个表达式,如果 A 表达式返回 False ,那么 A && B 已经确定为 False ,此时不会去执行表达式 B。同理,对于逻辑运算符 ||, 对于 A || B 这个表达式,如果 A 表达式返回 True ,那么 A || B 已经确定为 True ,此时不会去执行表达式 B。
1 |
|
1 | class Solution { |
参考文献
1 | 作者:LeetCode-Solution |
1 | 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? |
1 | class Solution { |
1 | 给定一棵二叉搜索树,请找出其中第k大的节点。 |
1 | /** |
1 | /** |
根据以上性质,易得二叉搜索树的 中序遍历倒序为递减序列。
1 | class Solution { |
参考文献
1 | 作者:jyd |
1 | 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 |
如果当前的数字的值大于index的值,说明在其左边有缺失的值。
如果当前的数字的值等于index的值,说明在其右边可能有缺失的值。
1 | import java.util.*; |
如果index和数字相同时,那么缺失的数字一定在当前位置的后面
如果index和数字不同时(index<数字),那么缺失的数字是定在当前位置的前面
1 | class Solution{ |
1 | class Solution { |
1 | 输入两个链表,找出它们的第一个公共节点。 |
1 | /** |
1 | 相遇时两个指针走过的路程相同: |
你变成我,走过我走过的路。
我变成你,走过你走过的路。
然后我们便相遇了..
或许这就是程序员的浪漫吧
1 | /** |
参考文献
1 | 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 |
1 | class Solution{ |
状态转移如下:
如果当前的字符串与先前的字符串重复了,那么找到当前字符串j的上一个位置i,当前最大的字符串的长度是j-i;
如果当前的字符串与先前的字符串没有重复,那么最大字符串的长度是先前最大字符串长度+1
1 | class Solution { |
参考文献
1 | 作者:jyd |
1 | 数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。 |
1 | class Solution { |
假设数组cost 的长度为 n,则 n 个阶梯分别对应下标 0 到 n−1,楼层顶部对应下标 n,问题等价于计算达到下标 n 的最小花费。可以通过动态规划求解。
创建长度为 n+1 的数组 dp,其中 dp[i] 表示达到下标 i 的最小花费。
由于可以选择下标 0 或 1 作为初始阶梯,因此有 dp[0]=dp[1]=0。
当 2≤i≤n 时,可以从下标i−1 使用 cost[i−1] 的花费达到下标 i,或者从下标 i−2 使用cost[i−2] 的花费达到下标 i。为了使总花费最小,dp[i] 应取上述两项的最小值,因此状态转移方程如下:
1 | dp[i]=min(dp[i−1]+cost[i−1],dp[i−2]+cost[i−2]) |
依次计算 dp 中的每一项的值,最终得到的dp[n] 即为达到楼层顶部的最小花费。
1 | class Solution { |
参考文献
1 | 作者:LeetCode-Solution |
1 | 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 |
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