leetcode
2096498443
学习技术的菜鸟。
展开
-
leetCode——将二叉搜索树变平衡
给你一棵二叉搜索树,请你返回一棵平衡后的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过 1 ,我们就称这棵二叉搜索树是平衡的 。如果有多种构造方法,请你返回任意一种。示例:输入:root = [1,null,2,null,3,null,4,null,null]输出:[2,1,3,null,null,null,4]解释:这不是唯一的正确答案,[3,1,4,null,2,null,null] 也是一个可行的构造方案。...原创 2020-07-30 21:24:06 · 362 阅读 · 0 评论 -
Leetcode——面试题 17.12. BiNode
二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,要求依然符合二叉搜索树的性质,转换操作应是原址的,也就是在原始的二叉搜索树上直接修改。返回转换后的单向链表的头节点。注意:本题相对原题稍作改动示例:输入: [4,2,5,1,3,null,6,0]输出: [0,null,1,null,2,null,3,null,4,null,5,null,6]本题思路:对二叉搜索树进行中序遍历,将遍历到的每一个结原创 2020-07-30 20:44:48 · 282 阅读 · 0 评论 -
Leetcode——两数相加
2. 两数相加难度中等4670给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807代码借助了之前发布...原创 2020-07-29 23:20:53 · 254 阅读 · 0 评论 -
字符串模拟大数相加——Java实现
public static String add(String str1, String str2) { //处理特殊情况 if(str1 == null || str1.equals("")){ return str2; } if(str2 == null || str2.equals("")){ return str1; } StringBuilder sb1.原创 2020-07-29 23:17:10 · 369 阅读 · 0 评论 -
Leetcode——392. 判断子序列
给定字符串s和t,判断s是否为t的子序列。你可以认为s和t中仅包含英文小写字母。字符串t可能会很长(长度 ~= 500,000),而s是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例1:s="abc",t="ahbgdc"返回true.示例2:s="axc",t="ahb...原创 2020-07-29 00:37:51 · 138 阅读 · 0 评论 -
Leetcode——矩阵中的最长递增路径
看到路径问题,我第一个想到的就是dfs或者是bfs。从一个点出发,寻找最长的递增路径,只需要向四周四个点进行探索,找出分别从四个点出发的最长的递增路径的最大值,之后+1就可。朴素深度优先搜索的时间复杂度过高的原因是进行了大量的重复计算,同一个单元格会被访问多次,每次访问都要重新计算。由于同一个单元格对应的最长递增路径的长度是固定不变的,因此可以使用记忆化的方法进行优化。用矩阵 \text{memo}memo 作为缓存矩阵,已经计算过的单元格的结果存储到缓存矩阵中。memo[i][j] =..原创 2020-07-26 17:34:43 · 206 阅读 · 0 评论 -
Leetcode——5. 最长回文子串
暴力解法:public static boolean isPalindrome(char[] charArray, int left, int right){// 判断一个字符串是否为回文字符串 charArray[left, right]//该方法采取从两端来判断回文子串 while(left < right){ if(charArray[left] != charArray[right]){ ret..原创 2020-07-25 16:04:51 · 178 阅读 · 0 评论 -
LeetCode——字符串——字符串转换整数 (atoi)
请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。 假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。 该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个有..原创 2020-07-19 17:35:07 · 123 阅读 · 0 评论