![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
Yu.Zhansheng
请大家多多指教!
展开
-
Leetcode96. 不同的二叉搜索树
给定一个整数n,求以1 ...n为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 ...原创 2019-05-02 11:29:24 · 261 阅读 · 0 评论 -
Leetcode54. 螺旋矩阵
题目:给定一个包含mxn个元素的矩阵(m行,n列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,1...原创 2019-05-09 10:42:42 · 208 阅读 · 0 评论 -
Leetcode59. 螺旋矩阵 II
题目:给定一个正整数n,生成一个包含 1 到n2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]解答:/**实现思路:给定四个边界,left = 0,right = n-1, top = 0,bottom = n-1, 然后每次进行四遍循环, (...原创 2019-05-09 11:24:13 · 234 阅读 · 0 评论 -
Leetcode44. 通配符匹配
题目:给定一个字符串(s) 和一个字符模式(p) ,实现一个支持'?'和'*'的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s可能为空,且只包含从a-z的小写字母。 p可能为空,且只包含从a-z的小写字母,以及字符?和*。示例1:输入:s = "aa...原创 2019-05-14 10:43:25 · 149 阅读 · 0 评论 -
Leetcode55. 跳跃游戏
题目:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引...原创 2019-05-14 12:02:24 · 116 阅读 · 0 评论 -
Leetcode232. 用栈实现队列
题目:使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // 返回...原创 2019-05-14 15:40:40 · 139 阅读 · 0 评论 -
Leetcode105. 从前序与中序遍历序列构造二叉树
题目:根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7解答:首先要知道一个结论,前序/后序+中序序列可以唯一确...原创 2019-05-07 11:01:37 · 109 阅读 · 0 评论 -
Leetcode106. 从中序与后序遍历序列构造二叉树
题目:根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder =[9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7解答:首先要知道一个结论,前序/后序+中序序列可以唯一...原创 2019-05-07 11:47:52 · 254 阅读 · 0 评论 -
Leetcode172. 阶乘后的零
题目:给定一个整数n,返回n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释:3! = 6, 尾数中没有零。示例2:输入: 5输出: 1解释:5! = 120, 尾数中有 1 个零.解答:class Solution { public int trailingZeroes(int n) { /** ...原创 2019-05-07 17:28:16 · 121 阅读 · 0 评论 -
Leetcode225. 用队列实现栈
题目:使用队列实现栈的下列操作:push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是push to back,peek/pop from front,size, 和is empty这些操作是合法的。 你所使用的语言也许不支持队列。你可以使...原创 2019-05-15 17:55:12 · 98 阅读 · 0 评论 -
Leetcode65. 有效数字
题目:验证给定的字符串是否可以解释为十进制数字。例如:"0"=>true" 0.1 "=>true"abc"=>false"1 a"=>false"2e10"=>true" -90e3 "=>true" 1e"=>false"e3"=>false" 6e-1"=>true" 99e2.5"...原创 2019-05-22 10:34:08 · 228 阅读 · 0 评论 -
Leetcode93. 复原IP地址
题目:给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]解答:class Solution { public List<String> restoreIpAddresses(String s) { ...原创 2019-05-22 15:40:44 · 226 阅读 · 0 评论 -
Leetcode103. 二叉树的锯齿形层次遍历
题目:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]解答(和102十...原创 2019-05-06 12:07:59 · 104 阅读 · 0 评论 -
Leetcode107. 二叉树的层次遍历 II
题目:给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]解答:和第102唯一的区...原创 2019-05-06 10:39:14 · 110 阅读 · 0 评论 -
Leetcode102. 二叉树的层次遍历
题目:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]解答:/** * Definition for a...原创 2019-05-06 10:20:24 · 89 阅读 · 0 评论 -
Leetcode98. 验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例1:输入: 2 / \ 1 3输出: true示例2:输入: 5 / \ 1 4 / \ 3 ...原创 2019-05-02 18:00:33 · 76 阅读 · 0 评论 -
Leetcode95. 不同的二叉搜索树 II
题目:给定一个整数n,生成所有由 1 ...n为节点所组成的二叉搜索树。示例:输入: 3输出:[ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树: 1 3 3 ...原创 2019-05-03 10:43:30 · 337 阅读 · 0 评论 -
Leetcode99. 恢复二叉搜索树
题目:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例1:输入: [1,3,null,null,2] 1 /3 \ 2输出: [3,1,null,null,2] 3 /1 \ 2示例2:输入: [3,1,4,null,null,2] 3 / \1 4 / ...原创 2019-05-03 15:51:09 · 167 阅读 · 0 评论 -
Leetcode48. 旋转图像
题目:给定一个n×n的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [...原创 2019-05-03 21:29:18 · 101 阅读 · 0 评论 -
Leetcode36. 有效的数独
题目:判断一个9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用'.'表示。示例1:输入:[ ["5","3",".",...原创 2019-05-05 15:25:03 · 94 阅读 · 0 评论 -
Leetcode37. 解数独
题目:编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。空白格用'.'表示。一个数独。答案被标成红色。Note:给定的数独序列只包含数字1-9和字符'.'。 你可以假设给定的数独...原创 2019-05-05 15:57:46 · 145 阅读 · 0 评论 -
Leetcode292. Nim 游戏
题目(这是一道关于巴什博奕的题目):你和你的朋友,两个人一起玩Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; ...原创 2019-05-05 16:41:19 · 104 阅读 · 0 评论 -
Leetcode204. 计数质数
题目:统计所有小于非负整数n的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。解答:class Solution { public int countPrimes(int n) { //直接上最优解,厄拉多塞筛法 boolean[] notPrime = ne...原创 2019-05-05 19:16:14 · 97 阅读 · 0 评论 -
Leetcode40. 组合总和 II
题目:给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,...原创 2019-05-08 15:36:01 · 114 阅读 · 0 评论 -
Leetcode39. 组合总和
题目:给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。 解集不能包含重复的组合。示例1:输入: candidates = [2,3,6,7], target = 7,...原创 2019-05-08 15:41:17 · 93 阅读 · 0 评论 -
Leetcode49. 字母异位词分组
题目:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。 不考虑答案输出的顺序。解答:/...原创 2019-05-08 17:31:32 · 80 阅读 · 0 评论 -
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
public class Solution { public int RectCover(int target) { if (target < 1) { return 0; } else if (target == 1 || target == 2) { r...原创 2019-07-29 15:13:50 · 1526 阅读 · 0 评论