LeetCode题目总结
该专栏每周记录刷题情况,主要说明题目内容和解题方法,格式不规范敬请谅解
Simon¥
这个作者很懒,什么都没留下…
展开
-
2020.12.21-2020.12.27 leetcode刷题总结(拓扑排序&蓄水池抽样&二叉搜索树&线段树)
拓扑排序一.题目列表1.课程表题目描述:你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。题解:2.课程表 II题目描述:原创 2020-12-27 14:48:40 · 150 阅读 · 0 评论 -
2020.12.07-2020.12.12 leetcode刷题总结(链表&回溯)
链表一.题目列表1.**反转链表 **题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL题解2.**分割链表 **题目描述:编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前。如果链表中包含 x,x 只需出现在小于 x 的元素之后(如下所示)。分割元素 x 只需处于“右半部分”即可,其不需要被置于左右两部分之间。示例原创 2020-12-13 13:06:47 · 131 阅读 · 0 评论 -
2020.11.30-2020.12.05 leetcode刷题总结(哈希表&滑动窗口)
哈希表一.题目列表1.**最长回文串 **题目描述:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。示例:输入:“abccccdd”输出:7题解:2.**两个列表的最小索引总和 **题目描述:假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则原创 2020-12-06 17:24:31 · 114 阅读 · 0 评论 -
2020.11.23-2020.11.28 leetcode刷题总结(位运算&排序)
位运算一.题目列表1.只出现一次的数字题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例:输入: [2,2,1]输出: 1题解:采用位运算的方法,异或运算2.颠倒二进制位题目描述:颠倒给定的 32 位无符号整数的二进制位。示例:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 000000101原创 2020-11-29 10:02:28 · 97 阅读 · 0 评论 -
2020.11.16-2020.11.22 leetcode刷题总结(数组&字符串)
数组一.题目列表1.**杨辉三角 II **题目描述:给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。示例:输入: 3输出: [1,3,3,1]题解:定义一个list,每次修改其中的值2.**两数之和 II - 输入有序数组 **题目描述:给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。示例:输入: numbers = [2, 7原创 2020-11-22 21:01:07 · 87 阅读 · 0 评论 -
2020.11.02-2020.11.15 leetcode刷题总结(分治&递归)
分治算法一.题目列表1.**数组中出现次数超过一半的数字 **题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。示例:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2题解:先排序后返回中间的数法二:依次计数法2.**数组中的第K个最大元素 **题目描述:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例:输入: [3,2,1,5,6,4] 和 k = 2原创 2020-11-15 21:33:42 · 123 阅读 · 0 评论 -
2020.10.26-2020.10.31 leetcode刷题总结(二分查找)
并查集一.题目列表1.二分查找题目描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4题解:2.旋转数组的最小数字题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,原创 2020-11-01 11:12:57 · 107 阅读 · 0 评论 -
2020.10.19-2020.10.24 leetcode刷题总结(并查集&双指针)
并查集一.题目列表1.被围绕的区域题目描述:给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X题解:采用并查集的思想,从四条边开始,找到边上的O和与其相连的O保存为O其他的O置为X2.岛屿数量题目描述:给你一个由 ‘1’(陆地)和 ‘0’(原创 2020-10-24 17:01:12 · 162 阅读 · 0 评论 -
2020.1012.-2020.10.17 leetcode刷题总结(树&图)
树一.题目列表1.翻转二叉树题目描述:翻转一棵二叉树。示例:输入:4/ 2 7/ \ / 1 3 6 9输出:4/ 7 2/ \ / 9 6 3 1题解:递归2.二叉搜索树的最近公共祖先题目描述:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点原创 2020-10-18 17:38:10 · 287 阅读 · 0 评论 -
2020.10.05-2020.10.10 leetcode刷题总结(DFS&BFS)
DFS一.题目列表1.相同的树题目描述:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例:输入: 1 1/ \ / 2 3 2 3 [1,2,3], [1,2,3]输出: true题解:递归2.二叉树的最大深度题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点原创 2020-10-11 11:40:51 · 129 阅读 · 1 评论 -
2020.09.28-2020.10.03 leetcode刷题总结(贪心&堆)
贪心算法一.题目列表1.判断子序列题目描述:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例:s = “abc”, t = “ahbgdc”返回 true.题解:原创 2020-10-04 18:42:57 · 895 阅读 · 0 评论 -
2020.09.21-2020.09.26 leetcode刷题总结(栈&队列)
栈一.题目列表1.下一个更大元素 I题目描述:给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:对于num1中的数字原创 2020-09-26 17:53:21 · 204 阅读 · 0 评论 -
2020.09.14-2020.09.19 leetcode刷题总结
leetcode刷题总结 2020.09.14-2020.09.19一.题目列表两数之和题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]题解:采用Hashmap的思想原创 2020-09-20 11:38:31 · 220 阅读 · 0 评论