
LeetCode面试题
为了实习,冲!!
神秘的义勇神驹
这个作者很懒,什么都没留下…
展开
-
LeetCode 111-120题 尚未看题解
111. 二叉树的最小深度难度简单365给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2. int minDepth(TreeNode* root) { if(root==NULL) return 0; ...原创 2020-09-17 19:34:54 · 245 阅读 · 0 评论 -
LeetCode 71-80题
71题跳过(这是CSP那个目录吗....)72. 编辑距离难度困难1136给你两个单词word1 和word2,请你计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符 删除一个字符 替换一个字符示例1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')...原创 2020-09-15 16:29:34 · 458 阅读 · 0 评论 -
LeetCode 51-60题
51. N 皇后难度困难603n皇后问题研究的是如何将 n个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的n皇后问题的解决方案。每一种解法包含一个明确的n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例:输入:4输出:[ [".Q..", // 解法 1 "...Q", "Q...", "..Q."], ["..Q.", ...原创 2020-09-13 11:40:46 · 181 阅读 · 0 评论 -
LeetCode 41-50题
41. 缺失的第一个正数难度困难770给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。看了一些解法是把数组当做哈希表...,这个技巧好像还用的不是很少哦原地哈希 f(nums[i]) = nums[i...原创 2020-09-12 15:50:54 · 274 阅读 · 0 评论 -
LeetCode 31-40题
31. 下一个排列难度中等655实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1完全看不懂??32. 最长有效括号难度困难957给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号..原创 2020-09-11 21:44:38 · 243 阅读 · 0 评论 -
LeetCode 21-30 题
21. 合并两个有序链表难度简单1259将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* l..原创 2020-09-11 10:51:24 · 174 阅读 · 0 评论 -
LeetCode 11-20 题
11. 盛最多水的容器难度中等1811给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。示例:输入...原创 2020-09-10 20:38:35 · 207 阅读 · 0 评论 -
LeetCode 1-10 题 3、4、5、7、9、10
1. 两数之和难度简单9073给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]哈希表或者直接遍历呀class Solution {public: ...原创 2020-09-10 10:55:57 · 303 阅读 · 0 评论 -
剑指 Offer 61-68
剑指 Offer 61. 扑克牌中的顺子难度简单55收藏分享切换为英文关注反馈从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例1:输入: [1,2,3,4,5]输出: True示例2:输入: [0,0,1,2,5]输出: Trueclass Solution {public: bool isStraig...原创 2020-08-13 21:30:48 · 114 阅读 · 0 评论 -
剑指 Offer 51-60
剑指 Offer 52. 两个链表的第一个公共节点难度简单83收藏分享切换为英文关注反馈输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。示例 1:class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { //让双指针浪漫相遇。 //如果是NULL就转到头。 .原创 2020-08-13 19:04:13 · 204 阅读 · 0 评论 -
剑指 Offer 41-50
剑指 Offer 42. 连续子数组的最大和难度简单102收藏分享切换为英文关注反馈输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。提示:1 <=arr.length <= 10^5 -100 <= arr[i] <= 100...原创 2020-08-13 11:56:10 · 145 阅读 · 0 评论 -
剑指 Offer 31-40
剑指 Offer 31. 栈的压入、弹出序列难度中等62输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序.原创 2020-08-12 23:12:17 · 180 阅读 · 0 评论 -
剑指 Offer 21-30
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面难度简单38收藏分享切换为英文关注反馈输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums =[1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。双指针class Solution {public: vector<int> exchange(vector<int>..原创 2020-08-12 16:30:02 · 134 阅读 · 0 评论 -
剑指 Offer 12-20
剑指 Offer 12. 矩阵中的路径难度中等140请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[["a","b","c","e"],["s","f","c","s"],["a","d","e","e"]]但矩阵中不包含字符串“abf原创 2020-08-11 23:32:48 · 216 阅读 · 0 评论 -
剑指OFFER 03-11
剑指 Offer 03. 数组中重复的数字难度简单143找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000class Solution {public: int fin.原创 2020-08-11 21:59:50 · 130 阅读 · 0 评论 -
LeetCode hot-100 简单and中等难度,91-100.
461. 汉明距离难度简单307收藏分享切换为英文关注反馈两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。class Solution {public: int ham原创 2020-08-09 20:46:12 · 246 阅读 · 0 评论 -
LeetCode hot-100 简单and中等难度,81-90.
打家劫舍系列题198. 打家劫舍难度简单1005收藏分享切换为英文关注反馈你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (.原创 2020-08-09 20:17:56 · 264 阅读 · 0 评论 -
LeetCode hot-100 简单and中等难度,71-80.
279. 完全平方数难度中等538收藏分享切换为英文关注反馈给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.从递归->动态规划的一个想法int numSquares(int n){ vector<i...原创 2020-08-09 18:46:35 · 258 阅读 · 0 评论 -
LeetCode hot-100 简单and中等难度,61-70.
207. 课程表难度中等520你这个学期必须选修 numCourse 门课程,记为0到numCourse-1 。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]] 输出: true解释:总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入:...原创 2020-08-09 16:45:57 · 282 阅读 · 0 评论 -
LeetCode hot-100 简单and中等难度,51-60.
142. 环形链表 II难度中等570收藏分享切换为英文关注反馈给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1解释:链表中有一个环,其尾部连...原创 2020-08-08 23:48:09 · 202 阅读 · 0 评论 -
LeetCode hot-100 简单and中等难度,41-50.
102. 二叉树的层序遍历难度中等589收藏分享切换为英文关注反馈给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]class Solution {public: vector<vector.原创 2020-08-08 17:06:00 · 337 阅读 · 0 评论 -
LeetCode hot-100 简单and中等难度,31-40.
75. 颜色分类难度中等527收藏分享切换为英文关注反馈给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。 首先,迭代计算出0、1 和 2 元素的个数,..原创 2020-08-08 15:32:20 · 255 阅读 · 0 评论 -
LeetCode hot-100 简单and中等难度,21-30.
46. 全排列难度中等829给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]class Solution {public: unordered_map<int,bool> visit; vector<int> tmp; void get(int n,int原创 2020-08-08 01:09:01 · 184 阅读 · 0 评论 -
LeetCode hot-100 简单and中等难度,11-20.
20. 有效的括号难度简单1746收藏分享切换为英文关注反馈给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:输入: "([)]"输...原创 2020-08-08 00:32:41 · 183 阅读 · 0 评论 -
LeetCode hot-100 简单and中等难度,1-10.
1. 两数之和难度简单8834给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]class Solution {public: vector<in...原创 2020-08-07 16:58:31 · 215 阅读 · 0 评论