LeetCode
文章平均质量分 67
码不停Ti
信息安全在校大学生
展开
-
LeetCode周赛252场:时隔半年再来练习
文章目录先BB再说题1. 三除数2.你可以工作的最大周数3.足够苹果最小花园长度4. 统计特殊子序列的数量先BB有一段时间没有做算法题了,从准备春招开始就没有再 参加过 LeetCode 周赛 两三年前是能做对 两三道题,这些年过去了,还是这个水平 甚至还退步了不少。仿佛还能想起刚开始接触 LeetCode 的时候 周赛还是用 iPad在 Java课上偷偷写 还只能做对 第一道签到题 第二题都不一定能写上。那时候 参加的人比现在 少的多还是自己太菜了,感觉身边的 同学 和 学弟学妹的水平原创 2021-08-01 13:54:34 · 414 阅读 · 2 评论 -
LeetCode周赛2021年5月9日
太久不写代码了第一次有空 做LeetCode周赛 不是 下标越界 就是 暴力超时或者是 明明很简单的题目 就是懒得写 比较麻烦 就不动手看别人的分享 学习一下第一题 活着的人 最多的年份class Solution {public: int yr[3000]; int maximumPopulation(vector<vector<int>>& logs) { for (vector<int> log : log原创 2021-05-09 13:53:04 · 888 阅读 · 0 评论 -
【LeetCode】5728. 最少侧跳次数
最少侧跳次数 显示英文描述通过的用户数1397尝试过的用户数2030用户总通过次数1416用户总提交次数3621题目难度Medium给你一个长度为 n 的 3 跑道道路 ,它总共包含 n + 1 个 点 ,编号为 0 到 n 。一只青蛙从 0 号点第二条跑道 出发 ,它想要跳到点 n 处。然而道路上可能有一些障碍。给你一个长度为 n + 1 的数组 obstacles ,其中 obstacles[i] (取值范围从 0 到 3)表示在点 i 处的 obstacles[i] 跑道上有一个障碍.原创 2021-04-11 14:55:13 · 417 阅读 · 1 评论 -
【LeetCode】647. 回文子串
【LeetCode】647. 回文子串给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:“abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:“aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”提示:输入的字符串长度不会超过 1000 。C++ 中心扩散官方答案下的一个评论题目虽然不难 但是这俩原创 2021-04-04 09:59:39 · 258 阅读 · 0 评论 -
【LeetCode】781. 森林中的兔子
很久没有做 LeetCode 了,感觉自己笔试也不咋地就是因为最近看的都是知识点,算法题做的太少了,而且没有使用 Java 写都是用C++ 写手撕代码就有些尴尬。【LeetCode】781. 森林中的兔子森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。示例:输入: answers = [1, 1, 2]输出: 5解释:两只回答了 “1” 的兔子可能有相同的颜色,设为红色。之原创 2021-04-04 09:19:55 · 429 阅读 · 0 评论 -
【LeetCode】146. LRU 缓存机制
题目内容运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之原创 2021-01-05 23:21:54 · 515 阅读 · 2 评论 -
【LeetCode】830. 较大分组的位置
LeetCode 题目在一个由小写字母构成的字符串 s 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 s = “abbxxxxzyy” 中,就含有 “a”, “bb”, “xxxx”, “z” 和 “yy” 这样的一些分组。分组可以用区间 [start, end] 表示,其中 start 和 end 分别表示该分组的起始和终止位置的下标。上例中的 “xxxx” 分组用区间表示为 [3,6] 。我们称所有包含大于或等于三个连续字符的分组为 较大分组 。找到每一个 较大分组 的区间,按起始原创 2021-01-05 21:17:05 · 384 阅读 · 0 评论 -
【LeetCode】148. 排序链表
给你链表的头结点head,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围[0, 5 * 104]内-105<= Node.va...原创 2020-11-21 14:13:52 · 589 阅读 · 0 评论 -
【LeetCode】328. 奇偶链表
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULL示例 2:输入: 2->1->3->5->6->原创 2020-11-15 17:08:53 · 484 阅读 · 0 评论 -
【LeetCode】402. 移掉K位数字
给定一个以字符串表示的非负整数num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且≥ k。num 不会包含任何前导零。示例 1 :输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例 2 :输入: num = "10200", k = 1输出: "200"解释: 移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。..原创 2020-11-15 16:51:51 · 714 阅读 · 0 评论 -
【LeetCode】1122. 数组的相对排序
给你两个数组,arr1 和arr2,arr2中的元素各不相同arr2 中的每个元素都出现在arr1中对 arr1中的元素进行排序,使 arr1 中项的相对顺序和arr2中的相对顺序相同。未在arr2中出现过的元素需要按照升序放在arr1的末尾。示例:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19]提示:arr1.length, arr...原创 2020-11-14 22:53:43 · 380 阅读 · 0 评论 -
LeetCode 236. 二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树:root =[3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点 5...原创 2020-11-07 22:27:05 · 420 阅读 · 0 评论 -
LeetCode 327. 区间和的个数
给定一个整数数组nums,返回区间和在[lower, upper]之间的个数,包含lower和upper。区间和S(i, j)表示在nums中,位置从i到j的元素之和,包含i和j(i ≤ j)。说明:最直观的算法复杂度是O(n2) ,请在此基础上优化你的算法。示例:输入: nums = [-2,5,-1], lower = -2, upper = 2,输出: 3解释: 3个区间分别是: [0,0], [2,2], [0,2],它们表示的和分别为: ...原创 2020-11-07 21:56:03 · 664 阅读 · 1 评论 -
LeetCode 127. 单词接龙
给定两个单词(beginWord和 endWord)和一个字典,找到从beginWord 到endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。示例1:输入:beginWord = "hit",endWord ...原创 2020-11-05 13:46:07 · 515 阅读 · 0 评论 -
LeetCode 349. 两个数组的交集
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/intersection-of-two-arrays著..原创 2020-11-04 23:24:57 · 1455 阅读 · 2 评论 -
LeetCode 941. 有效的山脉数组
给定一个整数数组A,如果它是有效的山脉数组就返回true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在0 < i< A.length - 1条件下,存在i使得:A[0] < A[1] < ... A[i-1] < A[i]A[i] > A[i+1] > ... > A[A.length - 1]示例 1:输入:[2,1]输出:false示例...原创 2020-11-04 23:15:31 · 369 阅读 · 0 评论 -
LeetCode 57. 插入区间
给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例1:输入:intervals = [[1,3],[6,9]], newInterval = [2,5]输出:[[1,5],[6,9]]示例2:输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]输出:[[1,2],[3,10],[12,1...原创 2020-11-04 23:06:00 · 373 阅读 · 0 评论 -
LeetCode 5556. 可以到达的最远建筑
给你一个整数数组 heights ,表示建筑物的高度。另有一些砖块 bricks 和梯子 ladders 。你从建筑物 0 开始旅程,不断向后面的建筑物移动,期间可能会用到砖块或梯子。当从建筑物 i 移动到建筑物 i+1(下标 从 0 开始 )时:如果当前建筑物的高度 大于或等于 下一建筑物的高度,则不需要梯子或砖块如果当前建筑的高度 小于 下一个建筑的高度,您可以使用 一架梯子 或 (h[i+1] - h[i]) 个砖块如果以最佳方式使用给定的梯子和砖块,返回你可以到达的最远建筑物的下标(原创 2020-11-01 14:20:24 · 778 阅读 · 0 评论 -
LeetCode 381. O(1) 时间插入、删除和获取随机元素 - 允许重复
设计一个支持在平均时间复杂度O(1)下,执行以下操作的数据结构。注意: 允许出现重复元素。insert(val):向集合中插入元素 val。remove(val):当 val 存在时,从集合中移除一个 val。getRandom:从现有集合中随机获取一个元素。每个元素被返回的概率应该与其在集合中的数量呈线性相关。示例:// 初始化一个空的集合。RandomizedCollection collection = new RandomizedCollection();// 向集...原创 2020-10-31 23:09:51 · 508 阅读 · 0 评论 -
841. 钥匙和房间
有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,...,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。最初,除 0 号房间外的其余所有房间都被锁住。你可以自由地在房间之间来回走动。如果能进入每个房间返回原创 2020-08-31 11:21:21 · 395 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof著作权归领扣网络所有。商业转.原创 2020-08-30 17:31:17 · 378 阅读 · 0 评论 -
557. 反转字符串中的单词 III
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"提示:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii著作权归领扣网络所有..原创 2020-08-30 17:20:01 · 359 阅读 · 0 评论 -
【LeetCode】1518. 换酒问题
小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。请你计算 最多 能喝到多少瓶酒。示例 1:输入:numBottles = 9, numExchange = 3输出:13解释:你可以用 3 个空酒瓶兑换 1 瓶酒。所以最多能喝到 9 + 3 + 1 = 13 瓶酒。示例 2:输入:numBottles = 15, numExchange = 4输出:19解释:你可以.原创 2020-07-20 16:01:58 · 904 阅读 · 0 评论 -
【LeetCode】1041. 困于环中的机器人
在无限的平面上,机器人最初位于(0, 0)处,面朝北方。机器人可以接受下列三条指令之一:"G":直走 1 个单位"L":左转 90 度"R":右转 90 度机器人按顺序执行指令instructions,并一直重复它们。只有在平面中存在环使得机器人永远无法离开时,返回true。否则,返回 false。示例 1:输入:"GGLLGG"输出:true解释:机器人从 (0,0) 移动到 (0,2),转 180 度,然后回到 (0,0)。重复这些指令,机器人将保持在以原点为...原创 2020-07-10 12:30:47 · 587 阅读 · 0 评论 -
【LeetCode】面试题 10.11. 峰与谷
在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{5, 8, 6, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。现在给定一个整数数组,将该数组按峰与谷的交替顺序排序。示例:输入: [5, 3, 1, 2, 3]输出:[5, 1, 3, 2, 3]提示:nums.length <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/peaks.原创 2020-07-10 12:17:36 · 730 阅读 · 0 评论 -
【LeetCode】309. 最佳买卖股票时机含冷冻期
给定一个整数数组,其中第i个元素代表了第i天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]来源:力扣(LeetCode)链接:https://leetcode-cn.c...原创 2020-07-10 12:07:33 · 510 阅读 · 0 评论 -
【LeetCode】718. 最长重复子数组
给两个整数数组A和B,返回两个数组中公共的、长度最长的子数组的长度。示例:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出:3解释:长度最长的公共子数组是 [3, 2, 1] 。提示:1 <= len(A), len(B) <= 10000 <= A[i], B[i] < 100来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-length-of-...原创 2020-07-01 23:39:08 · 457 阅读 · 0 评论 -
【LeetCode】 有效的括号
堆栈 嗯就是这个给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:输入: "([)]"输出: false示例5:输入: "...原创 2020-06-27 23:13:25 · 478 阅读 · 0 评论 -
【LeetCode】旋转数组
给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例2:输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100]解释: 向右旋转 1 步: [99,-1,-10...原创 2020-06-27 22:55:20 · 598 阅读 · 0 评论 -
【LeetCode】41. 缺失的第一个正数
难度 困难给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/first-missing-positive著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。提示:你的算法的时间复杂度应...原创 2020-06-27 22:29:47 · 429 阅读 · 0 评论 -
【LeetCode】35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/searc.原创 2020-06-09 20:53:57 · 302 阅读 · 0 评论 -
【LeetCode】面试题57 - II. 和为s的连续正数序列
输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <= 10^5来源:力扣(LeetCode)链接:https://leetcode-cn.com/..原创 2020-06-09 20:50:19 · 406 阅读 · 0 评论 -
【LeetCode】225. 用队列实现栈
使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是push to back, peek/pop from front, size, 和is empty这些操作是合法的。你所使用的语言也许不支持队列。你可以使用 list 或者 deque(双端队列)来模拟一个队列, 只要是标准的队列操作即可。你可以假设所有操作都是有效的(例如, 对...原创 2020-06-09 20:44:36 · 332 阅读 · 0 评论 -
【LeetCode】面试题46. 把数字翻译成字符串
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"提示:0 <= num < 231来源:力扣(LeetCode)链接:https..原创 2020-06-09 20:39:03 · 525 阅读 · 0 评论 -
【LeetCode程序员面试金典】面试题 08.11. Coin LCCI
Given an infinite number of quarters (25 cents), dimes (10 cents), nickels (5 cents), and pennies (1 cent), write code to calculate the number of ways of representing n cents.(The result may be large, so you should return it modulo 1000000007)Example1:.原创 2020-05-22 11:07:32 · 469 阅读 · 0 评论 -
【LeetCode程序员面试金典】面试题 01.04. Palindrome Permutation LCCI
Given a string, write a function to check if it is a permutation of a palin drome. A palindrome is a word or phrase that is the same forwards and backwards. A permutation is a rearrangement of letters. The palindrome does not need to be limited to just di原创 2020-05-22 10:33:29 · 423 阅读 · 0 评论 -
【LeetCode每日打卡】105. Construct Binary Tree from Preorder and Inorder Traversal
Given preorder and inorder traversal of a tree, construct the binary tree.Note:You may assume that duplicates do not exist in the tree.For example, givenpreorder =[3,9,20,15,7]inorder = [9,3,15,20,7]Return the following binary tree: 3 ...原创 2020-05-22 10:19:44 · 416 阅读 · 1 评论 -
【LeetCode每日打卡】152. Maximum Product Subarray
Given a non-empty string s, you may delete at most one character. Judge whether you can make it a palindrome.Example 1:Input: "aba"Output: TrueExample 2:Input: "abca"Output: TrueExplanation: You could delete the character 'c'.Note:The string will原创 2020-05-19 00:27:35 · 376 阅读 · 0 评论 -
【LeetCode每日打卡】152. Maximum Product Subarray
Given an integer arraynums, find the contiguous subarray within an array (containing at least one number) which has the largest product.Example 1:Input: [2,3,-2,4]Output: 6Explanation:[2,3] has the largest product 6.Example 2:Input: [-2,0,-1]Ou..原创 2020-05-18 10:39:42 · 408 阅读 · 0 评论 -
【LeetCode程序员面试金典】面试题 02.03. Delete Middle Node LCCI
Implement an algorithm to delete a node in the middle (i.e., any node but the first and last node, not necessarily the exact middle) of a singly linked list, given only access to that node.Example:Input: the node c from the linked list a->b->c.原创 2020-05-17 00:04:33 · 420 阅读 · 0 评论