随笔分类 -  leetcode题集

自己做的leetcode的题
摘要:递归状态树 1.分治 def divide_conquer(problem,param1,param2,...): #recursion terminator 1.递归终止条件 if proble is None: print_result return #prepare data 2.处理当前逻辑 阅读全文
posted @ 2021-06-12 20:37 zhustarstar 阅读(64) 评论(0) 推荐(0)
摘要:给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums = [1,1,2]输出:[[1,1,2], [1,2,1], [2,1,1]]示例 2: 输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1 阅读全文
posted @ 2021-06-11 21:59 zhustarstar 阅读(41) 评论(0) 推荐(0)
摘要:给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 输入:nums = [0,1]输出:[ 阅读全文
posted @ 2021-06-11 21:11 zhustarstar 阅读(62) 评论(0) 推荐(0)
摘要:总结:一个题目不要想的很复杂,尽可能的让他很简单,如果程序走向复杂,一方面你的做法错了,另一方面可能是没意义,复杂的程序对自己的程序设计能力没有提高,同时复杂的程序没什么用 根据一棵树的前序遍历与中序遍历构造二叉树。 注意:你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder =  阅读全文
posted @ 2021-06-11 11:15 zhustarstar 阅读(52) 评论(0) 推荐(0)
摘要:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例 1: 输入:root = [3,5,1,6,2 阅读全文
posted @ 2021-06-10 17:36 zhustarstar 阅读(482) 评论(0) 推荐(1)
摘要:给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root = [3,9,20,null,null,15,7]输出:2示例 2: 输入:root = [2,null,3,null,4,null,5,nu 阅读全文
posted @ 2021-06-10 14:05 zhustarstar 阅读(134) 评论(0) 推荐(0)
摘要:给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。 解法一:深度优先搜索递归版 取左子树 阅读全文
posted @ 2021-06-10 10:09 zhustarstar 阅读(116) 评论(0) 推荐(0)
摘要:给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1: 输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 阅读全文
posted @ 2021-06-09 21:55 zhustarstar 阅读(94) 评论(0) 推荐(0)
摘要:1.二叉树是否为空? 2.二叉树当前节点时候为空 3.插入当前节点,需要判断是否为空 阅读全文
posted @ 2021-06-09 20:10 zhustarstar 阅读(217) 评论(0) 推荐(0)
摘要:翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1 解法一:前序遍历递归 public TreeNode invertTree(TreeNode root) { invert(root); return root 阅读全文
posted @ 2021-06-09 17:58 zhustarstar 阅读(59) 评论(0) 推荐(0)
摘要:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2: 输入:n = 1输出:["()"] 解法一:递归 教会我程序是一步 阅读全文
posted @ 2021-06-09 16:32 zhustarstar 阅读(107) 评论(0) 推荐(0)
摘要:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2: 输入: 3输出: 3解释: 有三种方 阅读全文
posted @ 2021-06-09 14:35 zhustarstar 阅读(29) 评论(0) 推荐(0)
摘要:递归模板 1.递归终结条件 2.处理当前逻辑 3.下探到下一层 4.清理当前层的全局变量 public void recur(int level,int param) { //terminator递归终止条件 if(level>MAX_LEVEL) { //process result return 阅读全文
posted @ 2021-06-09 10:41 zhustarstar 阅读(222) 评论(0) 推荐(0)
摘要:给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 示例 1: 输入:root = [1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]示例 2: 输入:root = 阅读全文
posted @ 2021-06-08 21:44 zhustarstar 阅读(76) 评论(0) 推荐(0)
摘要:给定一个 N 叉树,返回其节点值的 前序遍历 。 N 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。 进阶: 递归法很简单,你可以使用迭代法完成此题吗? 示例 1: 输入:root = [1,null,3,2,4,null,5,6]输出:[1,3,5,6,2 阅读全文
posted @ 2021-06-08 18:08 zhustarstar 阅读(51) 评论(0) 推荐(0)
摘要:给定一个 N 叉树,返回其节点值的 后序遍历 。 N 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。 进阶: 递归法很简单,你可以使用迭代法完成此题吗? 示例 1: 输入:root = [1,null,3,2,4,null,5,6]输出:[5,6,3,2,4 阅读全文
posted @ 2021-06-08 16:58 zhustarstar 阅读(63) 评论(0) 推荐(0)
摘要:给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root = [1,null,2,3]输出:[1,2,3]示例 2: 输入:root = []输出:[]示例 3: 输入:root = [1]输出:[1] 解法一:递归求解,按照当前节点,然后前节点,后节点 public 阅读全文
posted @ 2021-06-07 21:46 zhustarstar 阅读(102) 评论(0) 推荐(0)
摘要:给定一个二叉树的根节点 root ,返回它的 中序 遍历。 示例 1: 输入:root = [1,null,2,3]输出:[1,3,2]示例 2: 输入:root = []输出:[]示例 3: 输入:root = [1]输出:[1]示例 4: 输入:root = [1,2]输出:[2,1]示例 5: 阅读全文
posted @ 2021-06-07 21:39 zhustarstar 阅读(93) 评论(0) 推荐(0)
摘要:1、 通过ForEach循环进行遍历 mport java.io.IOException; import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] arg 阅读全文
posted @ 2021-04-02 22:23 zhustarstar 阅读(71) 评论(0) 推荐(0)
摘要:1.题目描述 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]] 阅读全文
posted @ 2021-04-02 22:07 zhustarstar 阅读(37) 评论(0) 推荐(0)