leetcode
孤竹彧
一个想进步,又控制不住自己的小码农
展开
-
leetcode331. 验证二叉树的前序序列化
序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 _9_ / \ 3 2 / \ / \ 4 1 # 6/ \ / \ / \# # # # # #例如,上面的二叉树可以被序列化为字符串 “9,3,4,#,#,1,#,#,2,#,6,#,#”,其中 # 代表一个空节点。给定一串以逗号分隔的序列,验证它是否是正确的二叉树的前序序列化。编写原创 2021-03-12 13:50:46 · 170 阅读 · 0 评论 -
leetcode1776. 车队 II
在一条单车道上有 n 辆车,它们朝着同样的方向行驶。给你一个长度为 n 的数组 cars ,其中 cars[i] = [positioni, speedi] ,它表示:positioni 是第 i 辆车和道路起点之间的距离(单位:米)。题目保证 positioni < positioni+1 。speedi 是第 i 辆车的初始速度(单位:米/秒)。简单起见,所有车子可以视为在数轴上移动的点。当两辆车占据同一个位置时,我们称它们相遇了。一旦两辆车相遇,它们会合并成一个车队,这个车队里的车有着同样原创 2021-03-02 13:19:49 · 533 阅读 · 0 评论 -
leetcode803. 打砖块
写个程序,判断我所有已解答的题目中的时间排名我们有一组包含1和0的网格;其中1表示砖块。 当且仅当一块砖直接连接到网格的顶部,或者它至少有一块相邻(4 个方向之一)砖块不会掉落时,它才不会落下。我们会依次消除一些砖块。每当我们消除 (i, j) 位置时, 对应位置的砖块(若存在)会消失,然后其他的砖块可能因为这个消除而落下。返回一个数组表示每次消除操作对应落下的...原创 2020-01-13 14:43:30 · 339 阅读 · 0 评论 -
leetcode685. 冗余连接 II(使用快慢指针,不用Set)
在本问题中,有根树指满足以下条件的有向图。该树只有一个根节点,所有其他节点都是该根节点的后继。每一个节点只有一个父节点,除了根节点没有父节点。输入一个有向图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。 每一个边 的元素是一对 [u, v],用以表示有向图中连接顶点 u 和顶点 v 的边,其中 u 是 v 的一个父节点。返回一条能删除的边,使得剩下的图是有N个原创 2020-09-17 16:28:59 · 150 阅读 · 0 评论 -
leetcode164. 最大间距(利用桶排序)
给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例 1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。示例 2:输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。说明:你可以假设数组中所有元素都是非负整数,且数值在 32 位有符号整数范围内。请尝试在线性时间复杂度和空间复杂度的条件下解决此问题。答:这道题原创 2020-05-19 10:00:54 · 220 阅读 · 0 评论 -
leetcode460. LFU缓存
请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。它应该支持以下操作:get 和 put。get(key) - 如果键存在于缓存中,则获取键的值(总是正数),否则返回 -1。put(key, value) - 如果键已存在,则变更其值;如果键不存在,请插入键值对。当缓存达到其容量时,则应该在插入新项之前,使最不经常使用的项无效。在此问题中,当存在平局(即两个或更多个键具有相同使用频率)...原创 2020-04-10 13:22:23 · 177 阅读 · 0 评论 -
第22场双周赛
应该有三个多月没有参加周赛,今天参加下双周赛,第一局傻了,居然把10的3次方看成300,导致两次错误,第二题没在意n特别大,第三题结束,暂时排名一百多,很慌,第四局想了一会,突然灵光一闪,代码实现,一次通过。先说下总结:1、很重要的提示,数组的数值范围很小,那就很简单了,先把arr2的数字放到数组里,然后再让arr1比比较2、如果只判断一排的座位,那是简单的,那就把所有的按排进行分类,一排一...原创 2020-03-21 23:58:50 · 240 阅读 · 1 评论 -
LeetCode1383. 最大的团队表现值(PriorityQueue的使用)
0 / \ 1 2 / \ / \ 3 4 5 6 / \7 8原创 2020-03-18 22:22:19 · 615 阅读 · 0 评论 -
leetcode刷面试题(面试题08合集)
面试题 08.01. 三步问题三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。示例1:输入:n = 3输出:4说明: 有四种走法示例2:输入:n = 5输出:13提示:n范围在[1, 1000000]之间public int waysToStep(int...原创 2020-03-08 18:47:33 · 413 阅读 · 1 评论 -
leetcode面试题 17.26. 稀疏相似度
两个(具有不同单词的)文档的交集(intersection)中元素的个数除以并集(union)中元素的个数,就是这两个文档的相似度。例如,{1, 5, 3} 和 {1, 7, 2, 3} 的相似度是 0.4,其中,交集的元素有 2 个,并集的元素有 5 个。给定一系列的长篇文档,每个文档元素各不相同,并与一个 ID 相关联。它们的相似度非常“稀疏”,也就是说任选 2 个文档,相似度都很接近 0。请...原创 2020-03-05 13:39:39 · 243 阅读 · 0 评论 -
leetcode刷面试题(面试题05合集)
面试题 05.01. 插入插入。给定两个32位的整数N与M,以及表示比特位置的i与j。编写一种方法,将M插入N,使得M从N的第j位开始,到第i位结束。假定从j位到i位足以容纳M,也即若M = 10 011,那么j和i之间至少可容纳5个位。例如,不可能出现j = 3和i = 2的情况,因为第3位和第2位之间放不下M。示例1:输入:N = 10000000000, M = 10011, i = ...原创 2020-03-01 18:52:02 · 689 阅读 · 0 评论 -
leetcode刷面试题(面试题04合集)
面试题 04.01. 节点间通路节点间通路。给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。示例1:输入:n = 3, graph = [[0, 1], [0, 2], [1, 2], [1, 2]], start = 0, target = 2输出:true示例2:输入:n = 5, graph = [[0, 1], [0, 2], [0, 4], [0, 4], [0,...原创 2020-03-01 00:13:54 · 286 阅读 · 0 评论 -
leetcode刷面试题(面试题03合集)
面试题 03.01. 三合一三合一。描述如何只用一个数组来实现三个栈。你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标,value表示压入的值。构造函数会传入一个stackSize参数,代表每个栈的大小。示例1:输入:[“TripleInOne”, “pus...原创 2020-02-28 23:32:26 · 261 阅读 · 0 评论 -
算法面试题合集
题目都来着leetcode新的题都会在这更新1、程序员面试经典leetcode刷面试题(面试题01合集);leetcode刷面试题(面试题02合集);2、剑指offerleetcode面试题41. 数据流中的中位数;3、周赛leetcode14双周赛;LeetCode第12场双周赛;leetcode第149周赛;leetcode第7双周赛;第9场双周赛;leetcode第...原创 2020-02-28 11:41:20 · 157 阅读 · 0 评论 -
leetcode刷面试题(面试题02合集)
这一大块都是链表的练习。面试题 02.01. 移除重复节点编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1:输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3]示例2:输入:[1, 1, 1, 1, 2]输出:[1, 2]提示:链表长度在[0, 20000]范围内。链表元素在[0, 20000]范围内。进阶:如果不得使用临时缓冲区,该怎么解...原创 2020-02-28 10:20:31 · 321 阅读 · 0 评论 -
位运算在判断重复时候的运用
先说核心,怎么使用位运算来检查重复。一个int类型的数有32位,用二进制来表示就是00000000000000000000000000000000至11111111111111111111111111111111是不是很像一个32位的boolean类型的数组这时候给你一串字符串,全部由小写字母组成,现在问你字符串中保存了哪几个不重复的字母。去重嘛,第一反应是使用set,每个字母都保存...原创 2020-02-27 16:35:55 · 1187 阅读 · 0 评论 -
leetcode面试题41. 数据流中的中位数(同leetcode295. 数据流的中位数)
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据...原创 2020-02-25 17:26:25 · 171 阅读 · 0 评论 -
leetcode刷面试题(面试题01合集)
面试题 01.01. 判定字符是否唯一实现一个算法,确定一个字符串 s 的所有字符是否全都不同。示例 1:输入: s = “leetcode”输出: false示例 2:输入: s = “abc”输出: true限制:0 <= len(s) <= 100如果你不使用额外的数据结构,会很加分。//这种方式时间复杂度最高public boolean isUnique...原创 2020-02-25 11:43:13 · 532 阅读 · 0 评论 -
leetcode91. 解码方法(动态规划)
一条包含字母 A-Z 的消息通过以下方式进行了编码:‘A’ -> 1‘B’ -> 2…‘Z’ -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: “12”输出: 2解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。示例 2:输入: “226”输出: 3解释: 它可以解码为 ...原创 2020-01-13 14:42:55 · 259 阅读 · 0 评论 -
leetcode1310. 子数组异或查询
最近一直没参加周赛,今天遇到这道题,感觉有点意思,可以试着写下心路历程题目:有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li]...原创 2020-01-07 11:01:00 · 353 阅读 · 0 评论 -
leetcode338. 比特位计数
给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]我的想法很简单,就是用一个数组保存值,然后每次+1时,进行计算,我想了下复杂度,也是o(n)级别的。public int[] countBits(int n...原创 2019-12-26 11:36:07 · 154 阅读 · 0 评论 -
leetcode382. 链表随机节点(蓄水池采样算法)
给定一个单链表,随机选择链表的一个节点,并返回相应的节点值。保证每个节点被选的概率一样。进阶:如果链表十分大且长度未知,如何解决这个问题?你能否使用常数级空间复杂度实现?示例:// 初始化一个单链表 [1,2,3].ListNode head = new ListNode(1);head.next = new ListNode(2);head.next.next = new List...原创 2019-12-05 16:49:58 · 454 阅读 · 0 评论 -
leetcode14双周赛
十六进制魔术数字你有一个十进制数字,请按照此规则将它变成「十六进制魔术数字」:首先将它变成字母大写的十六进制字符串,然后将所有的数字 0 变成字母 O ,将数字 1 变成字母 I 。如果一个数字在转换后只包含 {“A”, “B”, “C”, “D”, “E”, “F”, “I”, “O”} ,那么我们就认为这个转换是有效的...原创 2019-12-02 11:24:19 · 173 阅读 · 0 评论 -
leetcode1036. 逃离大迷宫
在一个 10^6 x 10^6 的网格中,每个网格块的坐标为 (x, y),其中 0 <= x, y < 10^6。我们从源方格 source 开始出发,意图赶往目标方格 target。每次移动,我们都可以走到网格中在四个方向上相邻的方格,只要该方格不在给出的封锁列表 blocked 上。只有在可以通过一系列的移...原创 2019-11-04 17:40:59 · 549 阅读 · 2 评论 -
LeetCode第12场双周赛
1、力扣排行榜新一轮的「力扣杯」编程大赛即将启动,为了动态显示参赛者的得分数据,需要设计一个排行榜 Leaderboard。请你帮忙来设计这个 Leaderboard 类,使得它有如下 3 个函数:addScore(playerId, score):假如参赛者已经在排行榜上,就给他的当前得分增加 score 点分值并更新排行。假如该参赛者不在排行榜上,就把他添加到榜单上,并且将分数设置为...原创 2019-11-03 14:39:29 · 198 阅读 · 0 评论 -
leetcode1203. 项目管理
https://leetcode-cn.com/problems/sort-items-by-groups-respecting-dependencies/公司共有 n 个项目和 m 个小组,每个项目要不没有归属,要不就由其中的一个小组负责。我们用 group[i] 代表第 i 个项目所属的小组,如果这个项目目前无人接手,那么 group[i] 就等于 -1。(项目和小组都是从零开始编号的)...原创 2019-10-30 14:46:19 · 676 阅读 · 0 评论 -
leetcode1206. 设计跳表(跳表)
个人学习跳表网站:https://blog.csdn.net/pcwl1206/article/details/83512600跳表思想类似于二分查找,只不过用在链表上。但是又不能弄成平衡的二分查找(保持平衡耗费的性能很高),所以加入随机数,随机高度,保证效率不会太低。跳表的查询复杂度是O(lgn),仅插入或删除的复杂度是O(1),但是插入、删除之前需要先查询位置,所以还是O(lgn)图不会...原创 2019-10-29 11:19:28 · 760 阅读 · 0 评论 -
leetcode552. 学生出勤记录 II(典型的最优规划)
https://leetcode-cn.com/problems/student-attendance-record-ii/给定一个正整数 n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量。 答案可能非常大,你只需返回结果mod 109 + 7的值。学生出勤记录是只包含以下三个字符的字符串:‘A’ : Absent,缺勤‘L’ : Late,迟到‘P’ : Present,到场...原创 2019-10-28 11:11:56 · 314 阅读 · 0 评论 -
leetcode1225. 报告系统状态的连续日期(sql自定义变量)
https://leetcode-cn.com/problems/report-contiguous-dates/Table: Failed±-------------±--------+| Column Name | Type |±-------------±--------+| fail_date | date |±-------------±--------+...原创 2019-10-24 18:11:33 · 755 阅读 · 0 评论 -
leetcode76. 最小覆盖子串
题目:https://leetcode-cn.com/problems/minimum-window-substring/给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。示例:输入: S = “ADOBECODEBANC”, T = “ABC”输出: “BANC”说明:如果 S 中不存这样的子串,则返回空字符串 “”。如果 S 中存在这样...原创 2019-10-17 11:07:20 · 155 阅读 · 0 评论 -
集合之PriorityQueue的使用
PriorityQueue实现了Queue接口,所以属于队列PriorityQueue最大的特点是,时刻保持有序(最重要的特性)构造参数中加入Comparator,可以自定义排序方式 PriorityQueue<ListNode> listNodes = new PriorityQueue<>(new Comparator<ListNode>() { ...原创 2019-10-16 11:36:29 · 912 阅读 · 0 评论 -
leetcode37. 解数独
https://leetcode-cn.com/problems/sudoku-solver/submissions/这道题,我用的是我平时解数独的方法去做的没一个空格,通过横、纵、小区域来判断这个空格有哪几个可能性,如果只有一个可能,直接填入如果删选发现所有的格子都是多种可能,那就选一个可能性少的(2选1),填入一个值后进行假设猜想,如果失败,换一个值测试我就把我做题的逻辑,写成了代码...原创 2019-08-16 13:32:56 · 156 阅读 · 0 评论 -
leetcode780. 到达终点
https://leetcode-cn.com/problems/reaching-points/comments/从点 (x, y) 可以转换到 (x, x+y) 或者 (x+y, y)。给定一个起点 (sx, sy) 和一个终点 (tx, ty),如果通过一系列的转换可以从起点到达终点,则返回 True ,否则返回 False。这道题一开始觉得是递归,但是立马被自己否决了,如果起始是(...原创 2019-08-22 20:24:59 · 299 阅读 · 0 评论 -
leetcode第150周赛
恭喜自己拿到第13名,再创新高的战绩然后我的最后一题有点取巧第一题public int countCharacters(String[] words, String chars) { int ans = 0; for (int i = 0; i < words.length; i++) { if (get(words[i], chars)) { ans += words[...原创 2019-08-18 13:00:44 · 382 阅读 · 0 评论 -
leetcode827. 最大人工岛
https://leetcode-cn.com/problems/making-a-large-island/submissions/在二维地图上, 0代表海洋, 1代表陆地,我们最多只能将一格 0 海洋变成 1变成陆地。进行填海之后,地图上最大的岛屿面积是多少?(上、下、左、右四个方向相连的 1 可形成岛屿)示例 1:输入: [[1, 0], [0, 1]]输出: 3解释: 将一格0...原创 2019-08-27 23:12:34 · 355 阅读 · 0 评论 -
leetcode679. 24 点游戏
题目就不抄录了,毕竟24点游戏大家都玩过,就是利用加减乘除算出24遥想刚学java没多久,我就自己写了一个方法来算24,但是当时因为没有leetcode,所以也不知道是不是正确的然后我这次的方法和当时一样(看来没有进步啊),把我能想到的计算24的公式都写了一遍(经过两次提交失败,把遗漏的也补充上了)这种方式因为都考虑到了,所以运行时间很快2ms看了其他答案,不出所料,有把所有枚举都列出来的...原创 2019-08-30 15:43:32 · 360 阅读 · 0 评论 -
leetcode第152周赛
这次第三题有点意思,我忘了还可以这样,失误失误,因为第四题是会的,只是时间不够,不然名次不会只是95第一题https://leetcode-cn.com/problems/prime-arrangements/请你帮忙给从 1 到 n 的数设计排列方案,使得所有的「质数」都应该被放在「质数索引」(索引从 1 开始)上;你需要返回可能的方案总数。让我们一起来回顾一下「质数」:质数一定是大于 ...原创 2019-09-02 00:22:53 · 206 阅读 · 2 评论 -
leetcode第8场双周赛
这次双周赛有意外,第二第三题按照提示返回int[]会报错,要返回List第一题给你一个字符串 S,返回只含 单一字母 的子串个数。示例 1:输入: “aaaba”输出: 8解释:只含单一字母的子串分别是 “aaa”, “aa”, “a”, “b”。“aaa” 出现 1 次。“aa” 出现 2 次。“a” 出现 4 次。“b” 出现 1 次。所以答案是 1 + 2 + 4 +...原创 2019-09-08 22:46:38 · 2900 阅读 · 0 评论 -
第9场双周赛
1、最多可以买到的苹果数量楼下水果店正在促销,你打算买些苹果,arr[i] 表示第 i 个苹果的单位重量。你有一个购物袋,最多可以装 5000 单位重量的东西,算一算,最多可以往购物袋里装入多少苹果。示例 1:输入:arr = [100,200,150,1000]输出:4解释:所有 4 个苹果都可以装进去,因为它们的重量之和为 1450。示例 2:输入:arr = [900,950...原创 2019-09-23 14:01:48 · 318 阅读 · 0 评论 -
leetcode564. 寻找最近的回文数
https://leetcode-cn.com/problems/find-the-closest-palindrome/comments/重点几个,最近的回文数(不包括自己);分单双两种;重点考虑99…999和100…001和10000…0。不是很喜欢这道题,纯粹就是因为通过率低才写的代码:public String nearestPalindromic(String n) { if ...原创 2019-08-20 00:14:02 · 294 阅读 · 0 评论