
2021年2月
麻利麻利吼
这个作者很懒,什么都没留下…
展开
-
2021-02-25 递归乘法
题目 递归乘法写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。示例1:输入:A = 1, B = 10输出:10示例2:输入:A = 3, B = 4输出:12通过对两个数进行位运算,以3*4为例子按照传统的乘法的累加方式,从左向右判断B的每一位。如果为该位0,则加0;如果为1,则加A,然后左移一位,处理B的下一位。class Solution {public: int multiply(int A, int B) {原创 2021-02-25 14:43:42 · 370 阅读 · 0 评论 -
2021-02-24 找出克隆二叉树中的相同节点
题目 找出克隆二叉树中的相同节点给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 original 中的目标节点 target。其中,克隆树 cloned 是原始树 original 的一个 副本 。请找出在树 cloned 中,与 target 相同 的节点,并返回对该节点的引用示例 1:输入: tree = [7,4,3,null,null,6,19], target = 3输出: 3(黄色结点3的引用)解释: 上图画出了树 original 和 cl原创 2021-02-24 14:30:53 · 127 阅读 · 0 评论 -
2021-02-23 连续差相同的数字
题目 连续差相同的数字返回所有长度为 n 且满足其每两个连续位上的数字之间的差的绝对值为 k 的 非负整数 。请注意,除了 数字 0 本身之外,答案中的每个数字都 不能 有前导零。例如,01 有一个前导零,所以是无效的;但 0 是有效的。你可以按 任何顺序 返回答案。示例 1:输入:n = 3, k = 7输出:[181,292,707,818,929]解释:注意,070 不是一个有效的数字,因为它有前导零。示例 2:输入:n = 2, k = 1输出:[10,12,21,23,32,3原创 2021-02-23 17:35:57 · 390 阅读 · 0 评论 -
2021-02-22 跳跃游戏
题目 跳跃游戏这里有一个非负整数数组 arr,你最开始位于该数组的起始下标 start 处。当你位于下标 i 处时,你可以跳到 i + arr[i] 或者 i - arr[i]。请你判断自己是否能够跳到对应元素值为 0 的 任一 下标处。注意,不管是什么情况下,你都无法跳到数组之外。示例 1:输入:arr = [4,2,3,0,3,1,2], start = 5输出:true解释:到达值为 0 的下标 3 有以下可能方案:下标 5 -> 下标 4 -> 下标 1 -> 下原创 2021-02-22 21:37:23 · 76 阅读 · 0 评论 -
2021-02-21 验证二叉搜索树
题目 验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。解1 中序遍历由于二叉搜索树的中序遍历一定是一个升序的数组,因此中序遍历二叉树,并通过设置一个全局变量pNode记录遍历到的每个结点的上一个结点,如果pNode值 >= root的值,则说明不是二叉搜索树。另外,在设置一个全局变量flag,判断遍历过程种是否右上述所说情原创 2021-02-21 17:39:48 · 84 阅读 · 0 评论 -
2021-02-20 最长同值路径
class Solution { int L = 0;public: int longestUnivaluePath(TreeNode* root) { if(root == NULL) return 0; int length=0; getLongest(root,root->val); return L-1; } int getLongest(TreeNode* root , int nVal)原创 2021-02-21 11:43:09 · 94 阅读 · 0 评论 -
2021-2-19 构建字典序最大的可行序列 二叉树的右视图
给你一个整数 n ,请你找到满足下面条件的一个序列:整数 1 在序列中只出现一次。2 到 n 之间每个整数都恰好出现两次。对于每个 2 到 n 之间的整数 i ,两个 i 之间出现的距离恰好为 i 。序列里面两个数 a[i] 和 a[j] 之间的 距离 ,我们定义为它们下标绝对值之差 |j - i| 。请你返回满足上述条件中 字典序最大 的序列。题目保证在给定限制条件下,一定存在解。一个序列 a 被认为比序列 b (两者长度相同)字典序更大的条件是: a 和 b 中第一个不一样的数字处,a 序列原创 2021-02-19 15:36:15 · 267 阅读 · 0 评论 -
2021-02-13 二叉树累加和 修剪二叉搜索树
题目 把二叉搜索树转换为累加树给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。示例 1:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]...原创 2021-02-13 14:03:12 · 221 阅读 · 0 评论 -
2021-02-08 数值的整数次方
题目 数值的整数次方实现函数double Power(double base, int exponent),求base的exponent次方示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100解1 循环快速幂法的二进制角度:class Solution {public: double myPow(double x, long long n) { double res = 1;原创 2021-02-08 20:33:22 · 125 阅读 · 0 评论 -
2021-02-05 前序中序遍历生成树
题目 重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例:前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7/** * Definition for a binary tree node. * struct TreeNode { * int val原创 2021-02-07 10:34:47 · 217 阅读 · 0 评论 -
2021-02-04 至少K个重复字符的最大字串
题目1 至少K个重复字符的最大字串找到给定字符串(由小写字符组成)中的最长子串 T , 要求 T 中的每一字符出现次数都不少于 k 。输出 T 的长度。示例 1:输入:s = “aaabb”, k = 3输出:3最长子串为 “aaa” ,其中 ‘a’ 重复了 3 次。解:本题目主要通过分治+递归进行实现。主要思路如下:遍历一遍字符串,计数每个字母出现的次数,存储到哈希表中再遍历字符串,以次数小于k的字母作为分隔符,将字符串分割成若干部分,再分别对字串递归进行同样的操作,直到整个字符串原创 2021-02-05 14:32:09 · 198 阅读 · 0 评论 -
2021-02-02第K个语法符号
题目 第K个语法符号在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始)示例:输入: N = 1, K = 1输出: 0输入: N = 2, K = 1输出: 0输入: N = 2, K = 2输出: 1输入: N = 4, K = 5输出: 1解释:第一行: 0第二行: 01第三行: 0110第四行: 01101001解1 递归class Solution {publi原创 2021-02-03 11:11:03 · 91 阅读 · 0 评论