leetcode
文章平均质量分 73
ccluqh
这个作者很懒,什么都没留下…
展开
-
leetcode373. 查找和最小的K对数字
1.题目描述给定两个以升序排列的整数数组 nums1 和 nums2,以及一个整数 k。定义一对值(u,v),其中第一个元素来自nums1,第二个元素来自 nums2。请找到和最小的 k个数对(u1,v1), (u2,v2) ... (uk,vk)。示例 1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[1,4],[1,6]解释: 返回序列中的前 3 对数: [1,2],[1,4]...原创 2021-12-14 21:22:01 · 962 阅读 · 0 评论 -
leetcode1712.将数组分成三个子数组的方案数
1.题目描述1712. 将数组分成三个子数组的方案数我们称一个分割整数数组的方案是好的,当它满足:数组被分成三个非空连续子数组,从左至右分别命名为left,mid,right。 left中元素和小于等于mid中元素和,mid中元素和小于等于right中元素和。给你一个非负整数数组nums,请你返回好的分割nums方案数目。由于答案可能会很大,请你将结果对109+ 7取余后返回。示例 1:输入:nums = [1,1,1]...原创 2021-11-25 19:40:29 · 765 阅读 · 0 评论 -
leetcode503. 下一个更大元素 II「单调栈」
1.题目描述给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;第二个 1 的下一个最大的数需要循环搜索,结果也是 2。注意: 输入数组的长度不会超过 10000.原创 2021-10-18 20:25:16 · 134 阅读 · 0 评论 -
leetcode509.斐波那契数
1.题目描述斐波那契数,通常用F(n) 表示,形成的序列称为 斐波那契数列 。该数列由0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1)= 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n ,请计算 F(n) 。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1示例 2:输入:3输出:2解释:F(3) = F(2) + F(1) = 1 + 1 ...原创 2021-08-26 20:15:58 · 91 阅读 · 0 评论 -
leetcode103. 二叉树的锯齿形层次遍历
1.题目描述给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]来源:力扣(Le...原创 2020-04-06 17:20:12 · 249 阅读 · 0 评论 -
leetcode167. 两数之和 II - 输入有序数组
1.题目描述给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 1...原创 2020-04-06 14:47:28 · 190 阅读 · 0 评论 -
leetcode445. 两数相加 II
1.题目描述给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入: (7 -> 2 -> 4 -> 3) + (5 -> 6 ...原创 2020-04-06 14:39:02 · 276 阅读 · 0 评论 -
leetcode2. 两数相加
1.题目描述给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -...原创 2020-04-06 14:19:40 · 152 阅读 · 0 评论 -
leetcode460.LFU缓存「2020-0405」
1.题目描述设计并实现最不经常使用(LFU)缓存的数据结构。它应该支持以下操作:get和put。get(key)- 如果键存在于缓存中,则获取键的值(总是正数),否则返回 -1。put(key, value)- 如果键不存在,请设置或插入值。当缓存达到其容量时,它应该在插入新项目之前,使最不经常使用的项目无效。在此问题中,当存在平局(即两个或更多个键具有相同使用频率)时,最近最...原创 2020-04-05 18:04:36 · 263 阅读 · 0 评论 -
剑指offer/leetcode21. 合并两个有序链表
1.题目描述将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-...原创 2020-04-05 16:32:23 · 187 阅读 · 0 评论 -
leetcode128.最长连续序列
1.题目描述给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为O(n)。示例:输入:[100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。2.解题思路这些数字用一个 HashSet 保存(或者用 Python 里的 Set),实现 O(1)时间的查询,同时,我们只对 当前数字...原创 2020-04-04 18:25:40 · 182 阅读 · 0 评论 -
leetcode41.缺失的第一个正数
1.题目描述给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。来源:力扣(LeetCode)链接:https://l...原创 2020-04-04 15:12:27 · 220 阅读 · 0 评论 -
leetcode160.相交链表
1.题目描述编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:...原创 2020-04-04 13:21:33 · 206 阅读 · 0 评论 -
leetcode567.字符串的排列
1.题目描述给定两个字符串s1和s2,写一个函数来判断 s2 是否包含 s1的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例2:输入: s1= "ab" s2 = "eidboaoo"输出: False...原创 2020-04-04 00:12:26 · 308 阅读 · 0 评论 -
leetcode8. 字符串转换整数 (atoi)「2020-0403」
1.题目描述请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之...原创 2020-04-03 18:43:35 · 182 阅读 · 0 评论 -
leetcode1111. 有效括号的嵌套深度「2020-0401」
1.题目描述有效括号字符串 定义:对于每个左括号,都能找到与之对应的右括号,反之亦然。详情参见题末「有效括号字符串」部分。嵌套深度 depth 定义:即有效括号字符串嵌套的层数,depth(A) 表示有效括号字符串 A 的嵌套深度。详情参见题末「嵌套深度」部分。有效括号字符串类型与对应的嵌套深度计算方法如下图所示:给你一个「有效括号字符串」 seq,请你将其分成两个不相交的有...原创 2020-04-01 23:07:42 · 171 阅读 · 0 评论 -
leetcode950.按递增顺序显示卡牌
1.题目描述牌组中的每张卡牌都对应有一个唯一的整数。你可以按你想要的顺序对这套卡片进行排序。最初,这些卡牌在牌组里是正面朝下的(即,未显示状态)。现在,重复执行以下步骤,直到显示所有卡牌为止:从牌组顶部抽一张牌,显示它,然后将其从牌组中移出。如果牌组中仍有牌,则将下一张处于牌组顶部的牌放在牌组的底部。如果仍有未显示的牌,那么返回步骤 1。否则,停止行动。返回能以递增顺序显示...原创 2020-03-29 16:44:47 · 219 阅读 · 0 评论 -
leetcode7.整数反转
1.题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。...原创 2020-03-29 15:34:00 · 154 阅读 · 0 评论 -
leetcode215. 数组中的第K个最大元素
1.题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。来源:力扣(...原创 2020-03-23 14:24:55 · 127 阅读 · 0 评论 -
剑指offer11.旋转数组的最小数字/leetcode153.寻找旋转排序数组中的最小值
1.题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。2.解题思路二分查找记录有序区间的第一个数字,来不断更新最小的结果作为答案。注意rig...原创 2019-12-18 17:24:07 · 105 阅读 · 0 评论 -
剑指offer27. 二叉树的镜像/leetcode226. 翻转二叉树
1.题目描述翻转一棵二叉树。示例:输入: 4 / \ 2 7/ \ / \1 3 6 9输出: 4 / \ 7 2/ \ / \9 6 3 1来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/invert-b...原创 2020-03-23 13:53:38 · 212 阅读 · 0 评论 -
leetcode409.最长回文串「2020-0319」
1.题目描述给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。2.解题思路如果一个字母出现的次...原创 2020-03-22 22:20:16 · 98 阅读 · 0 评论 -
leetcode836. 矩形重叠「2020-0318」
1.题目描述矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:true...原创 2020-03-22 21:53:33 · 139 阅读 · 0 评论 -
leetcode1160. 拼写单词「2020-0317」
1.题目描述给你一份『词汇表』(字符串数组)words和一张『字母表』(字符串)chars。假如你可以用chars中的『字母』(字符)拼写出 words中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写(指拼写词汇表中的一个单词)时,chars 中的每个字母都只能用一次。返回词汇表words中你掌握的所有单词的 长度之和。示例 1...原创 2020-03-22 18:52:33 · 178 阅读 · 0 评论 -
leetcode1071.字符串的最大公因子「2020-0312」
1.题目描述1071. 字符串的最大公因子难度简单125对于字符串S和T,只有在S = T + ... + T(T与自身连接 1 次或多次)时,我们才认定“T能除尽S”。返回最长字符串X,要求满足X能除尽str1且X能除尽str2。示例 1:输入:str1 = "ABCABC", str2 = "ABC"输出:"ABC"示例...原创 2020-03-22 18:45:18 · 213 阅读 · 0 评论 -
leetcode1013.将数组分成和相等的三个部分「2020-0311」
1.题目描述给你一个整数数组A,只有可以将其划分为三个和相等的非空部分时才返回true,否则返回 false。形式上,如果可以找出索引i+1 < j且满足(A[0] + A[1] + ... + A[i] == A[i+1] + A[i+2] + ... + A[j-1] == A[j] + A[j-1] + ... + A[A.length - 1])就可以将数组三等...原创 2020-03-22 16:18:27 · 183 阅读 · 0 评论 -
leetcode1103. 分糖果 II「2020-0305」
1.题目描述排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n+ 1 颗糖果,第二个小朋友 n+ 2 颗,依此类推,直到给最后一个小朋友 2 * n颗糖果。重复上述过程...原创 2020-03-22 15:49:10 · 105 阅读 · 0 评论 -
leetcode994.腐烂的橘子「2020-0304」
1.题目描述在给定的网格中,每个单元格可以有以下三个值之一:值0代表空单元格;值1代表新鲜橘子;值2代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回-1。示例 1:输入:[[2,1,1],[1,1,0],[0,1,1]]输出:4示例 2:...原创 2020-03-22 13:14:49 · 208 阅读 · 0 评论 -
leetcode945.使数组唯一的最小增量「2020-0322」
1.题目描述给定整数数组 A,每次 move 操作将会选择任意A[i],并将其递增1。返回使 A中的每个值都是唯一的最少操作次数。示例 1:输入:[1,2,2]输出:1解释:经过一次 move 操作,数组将变为 [1, 2, 3]。示例 2:输入:[3,2,1,2,1,7]输出:6解释:经过 6 次 move 操作,数组将变为 [3, 4, 1, 2, 5, ...原创 2020-03-22 12:11:47 · 195 阅读 · 0 评论 -
leetcode365. 水壶问题「2020-0321」
1.题目描述有两个容量分别为x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好z升 的水?如果可以,最后请用以上水壶中的一或两个来盛放取得的z升水。你允许:装满任意一个水壶清空任意一个水壶从一个水壶向另外一个水壶倒水,直到装满或者倒空示例 1: (From the famous "Die Hard" example)输入: x ...原创 2020-03-21 22:47:23 · 447 阅读 · 0 评论 -
剑指offer/leetcode225.用队列实现栈
1.题目描述使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是push to back, peek/pop from front, size, 和is empty这些操作是合法的。你所使用的语言也许不支持队列。你可以使...原创 2020-02-27 20:46:14 · 148 阅读 · 0 评论 -
leetcode152.乘积最大子序列「京东」
1.题目描述给定一个整数数组 nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。2.解题思路3.代码实现class Solution(o...原创 2020-02-26 15:00:40 · 154 阅读 · 0 评论 -
leetcode698.划分为k个相等的子集
1.题目描述给定一个整数数组nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。示例 1:输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4输出: True说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3)等于总和。注意:1 <= k <= len(nums) &...原创 2020-02-23 17:01:20 · 1296 阅读 · 0 评论 -
leetcode697.数组的度
1.题目描述给定一个非空且只包含非负数的整数数组nums, 数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是找到与nums拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入: [1, 2, 2, 3, 1]输出: 2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, ...原创 2020-02-23 14:04:28 · 172 阅读 · 0 评论 -
leetcode670.最大交换「地平线面试」
1.题目描述给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。示例 1 :输入: 2736输出: 7236解释: 交换数字2和数字7。示例 2 :输入: 9973输出: 9973解释: 不需要交换。注意:给定数字的范围是[0, 108]来源:力扣(LeetCode)链接:https://leetcode-cn.com/proble...原创 2020-02-19 15:25:26 · 520 阅读 · 0 评论 -
leetcode518.零钱兑换 II
1.题目描述给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。示例 1:输入: amount = 5, coins = [1, 2, 5]输出: 4解释: 有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+15=1+1+1+1+1示例 2:输入: amount = 3, coins = [2]...原创 2020-02-17 23:01:33 · 190 阅读 · 0 评论 -
leetcode367.有效的完全平方数「招商银行」
1.题目描述给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如sqrt。示例 1:输入:16输出:True示例 2:输入:14输出:False2.解题思路方法一:从1搜索到 sqrt(num),看有没有平方正好等于 num 的数方法二:二分查找3....原创 2020-02-17 20:36:00 · 133 阅读 · 0 评论 -
leetcode72.编辑距离
1.题目描述给定两个单词word1 和word2,计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例1:输入: word1 = "horse", word2 = "ros"输出: 3解释:horse -> rorse (将 'h' 替换为 'r')rorse -&g...原创 2020-01-27 21:09:34 · 188 阅读 · 0 评论 -
leetcode297/剑指offer37.二叉树的序列化与反序列化
1.题目描述序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。示例:你可以将以...原创 2020-01-05 20:38:08 · 172 阅读 · 0 评论 -
leetcode139.单词拆分
1.题目描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leet...原创 2020-01-05 19:19:22 · 144 阅读 · 0 评论