随笔分类 -  LeetCode

摘要:二叉树的中序遍历 题目链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 面试的时候问这道题基本都是考察非递归的写法,但还是贴一下递归写法: 方法1:递归 var result []int func f(root *T 阅读全文
posted @ 2022-04-11 18:26 西*风 阅读(90) 评论(0) 推荐(0) 编辑
摘要:最长有效括号 题目链接:https://leetcode-cn.com/problems/longest-valid-parentheses/ 给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例 1: 输入:s = "(()" 输出:2 解释:最长有效 阅读全文
posted @ 2022-04-11 15:48 西*风 阅读(65) 评论(0) 推荐(0) 编辑
摘要:和为k的子数组(map统计前缀和) 题目链接:https://leetcode-cn.com/problems/subarray-sum-equals-k/ 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 示例 1: 输入:nums = [1,1, 阅读全文
posted @ 2022-04-09 15:37 西*风 阅读(79) 评论(0) 推荐(0) 编辑
摘要:旋转图像(找规律) 题目链接:https://leetcode-cn.com/problems/rotate-image/ 题目大意:将矩阵顺时针旋转90度,要求原地旋转,空间复杂度O(1) 先水平对折翻转,然后主对角线翻转 func rotate(matrix [][]int) { n:=len( 阅读全文
posted @ 2022-04-09 14:29 西*风 阅读(55) 评论(0) 推荐(0) 编辑
摘要:二叉树的序列化和反序列化 题目链接:https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/ 题目大意:写两个函数,能够分别对二叉树进行序列化和反序列化 方法1:bfs 序列化:采用队列实现,根节点先入队,处理时按 阅读全文
posted @ 2022-04-07 18:44 西*风 阅读(48) 评论(0) 推荐(0) 编辑
摘要:删除二叉搜索树中的节点 题目链接:https://leetcode-cn.com/problems/delete-node-in-a-bst/ 题目大意:删除指定key的节点,返回root 分析:树是二叉搜索树,要求返回后仍然保持搜索树的位置 二叉搜索树:根节点值大于左孩子值,根节点值小于右孩子值 阅读全文
posted @ 2022-04-07 15:56 西*风 阅读(46) 评论(0) 推荐(0) 编辑
摘要:课程表( 拓扑排序/dfs 判环) 题目链接:https://leetcode-cn.com/problems/course-schedule/ 题目大意:给定一个课程依赖关系图,比如课程A依赖课程B,课程B依赖课程C,按照上述的依赖关系,能否学习完所有的课程? 先学C,再学B,最后学A即可 方式1 阅读全文
posted @ 2022-04-07 13:19 西*风 阅读(160) 评论(0) 推荐(0) 编辑
摘要:LRU缓存 题目链接:https://leetcode-cn.com/problems/lru-cache/ 双向链表+map map用来确定链表中是否存在此key的节点 双向链表用来实际存储 每次get,都把get的节点放到链表头部 每次put,两种情况 key存在,更新value,此节点移到头部 阅读全文
posted @ 2022-04-06 17:47 西*风 阅读(35) 评论(0) 推荐(0) 编辑
摘要:二叉树的最近公共祖先 链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/ 题目大意:求p和q在root树上的公共祖先,p和q可以是自身的祖先 方法1: 归根结底还是分解成子问题,然后递归求解 针对树 阅读全文
posted @ 2022-04-06 15:28 西*风 阅读(48) 评论(0) 推荐(0) 编辑
摘要:二叉树最大路径和 题目链接:https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/ 分析: 这个题目是求二叉树的最大路径和,要点有两个: 最大不能走回头路:从根节点延伸的路径,你不能走了左子树又掉过头来走右子树 最大路径不一定要经 阅读全文
posted @ 2022-04-06 12:00 西*风 阅读(95) 评论(0) 推荐(0) 编辑
摘要:力扣 二叉树展开为链表(dfs) 题目链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/ 题目的意思是按照其先序遍历的顺序将二叉树展开为链表,要求使用O(1)的内存空间,所以先排除先序遍历出存储起来再构造链表 阅读全文
posted @ 2022-03-10 18:07 西*风 阅读(36) 评论(0) 推荐(0) 编辑
摘要:力扣 验证二叉搜索树(dfs或中序遍历) 题目链接:https://leetcode-cn.com/problems/validate-binary-search-tree/ 题目的意思就是验证一棵树是不是二叉搜索树 二叉搜索树的特征就是左孩子值小于根节点值,右孩子值大于根节点值 解析: 方法1就是 阅读全文
posted @ 2022-03-10 15:57 西*风 阅读(39) 评论(0) 推荐(0) 编辑
摘要:力扣 组合总和(标准dfs) 题目链接:https://leetcode-cn.com/problems/combination-sum/ 题目的大致意思就是从一个没有重复元素的数组中,抽取任意个数其和要等于target,让你列出所有的组合方式 需要注意的是可选择多个同样的数组元素,无单个限制 解析 阅读全文
posted @ 2022-03-10 11:27 西*风 阅读(23) 评论(0) 推荐(0) 编辑
摘要:力扣 二叉树的直径(dfs) 题目链接:https://leetcode-cn.com/problems/diameter-of-binary-tree/ 题目的意思是求二叉树的直径,就是从任意节点出发,到任意节点结束,最长的那一条路径,也就是这条路上经过节点的数量减去1就是最长直径 需要明确的是, 阅读全文
posted @ 2022-03-09 16:04 西*风 阅读(41) 评论(0) 推荐(0) 编辑
摘要:力扣 相交链表 题目链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists 题目大致意思就是判断两个链表有没有交点,有的话给出交点,没有的话返回null 要求是不能修改链表,并且时间复杂度为O(N+M),空间复杂度为O 阅读全文
posted @ 2022-03-08 16:44 西*风 阅读(97) 评论(0) 推荐(0) 编辑
摘要:力扣 括号生成(dfs+剪枝) 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 示例 2: 输入:n = 1 输出:["( 阅读全文
posted @ 2022-03-08 12:32 西*风 阅读(31) 评论(0) 推荐(0) 编辑
摘要:给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。 示例 2: 输入: [3 阅读全文
posted @ 2019-10-14 11:11 西*风 阅读(217) 评论(0) 推荐(0) 编辑
摘要:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: ["eat", "tea", "tan", "ate", "nat", "bat"], 输出: [ ["ate","eat","tea"], ["nat","tan"], ["bat"] ] 说明 阅读全文
posted @ 2019-10-14 09:14 西*风 阅读(232) 评论(0) 推荐(0) 编辑
摘要:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。 示例: 输入: [0,1, 阅读全文
posted @ 2019-09-30 10:57 西*风 阅读(308) 评论(0) 推荐(0) 编辑
摘要:给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1说明:你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/first-missing-... 阅读全文
posted @ 2019-08-19 20:38 西*风 阅读(407) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示