- 博客(27)
- 资源 (33)
- 收藏
- 关注
原创 leetcode *841. 钥匙和房间(2020.8.31)
【题目】*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 09:35:01 112
原创 leetcode **214. 最短回文串(2020.8.29)
【题目】**214. 最短回文串给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。示例 1:输入: "aacecaaa"输出: "aaacecaaa"示例 2:输入: "abcd"输出: "dcbabcd"【解题思路1】字符串哈希class Solution { public String shortestPalindrome(String s) { int n = s.length();
2020-08-29 10:36:56 157
原创 leetcode *332. 重新安排行程(欧拉回路 / 欧拉通路)(2020.8.27)
【题目】*332. 重新安排行程753. 破解保险箱给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 [“JFK”, “LGA”] 与 [“JFK”, “LGB”] 相比就更小,排序更靠前所有的机场都用三个大写字母表示(机场代码)。假定所有机票
2020-08-27 12:29:59 280
原创 leetcode *17. 电话号码的字母组合(2020.8.26)
【题目】*17. 电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。【解题思路1】递归 回溯class Solution { public List<String&
2020-08-26 09:52:33 227
原创 leetcode *491. 递增子序列(2020.8.25)
【题目】*491. 递增子序列给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。示例:输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]说明:给定数组的长度不会超过15。数组中的整数范围是 [-100,100]。给定数组中可能包含重复数字,相等的数字应该被视为递增的一种情况。【解题思路1】递归class Solu
2020-08-25 09:56:59 157
原创 Webstorm安装与使用
Webstorm是专用于web开发的号称最好的的编辑器,界面美观大方,有黑、白和经典三大主题可选,使用起来整体感觉良好,破解也不是很麻烦。
2020-08-24 10:15:24 69652 6
原创 leetcode *5497. 查找大小为 M 的最新分组(周赛203)
【题目】*5497. 查找大小为 M 的最新分组给你一个数组 arr ,该数组表示一个从 1 到 n 的数字排列。有一个长度为 n 的二进制字符串,该字符串上的所有位最初都设置为 0 。在从 1 到 n 的每个步骤 i 中(假设二进制字符串和 arr 都是从 1 开始索引的情况下),二进制字符串上位于位置 arr[i] 的位将会设为 1 。给你一个整数 m ,请你找出二进制字符串上存在长度为 m 的一组 1 的最后步骤。一组 1 是一个连续的、由 1 组成的子串,且左右两边不再有可以延伸的 1 。返
2020-08-23 13:30:42 237 4
原创 leetcode *5496. 你可以获得的最大硬币数目(周赛203)
【题目】*5496. 你可以获得的最大硬币数目有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币:每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。Alice 将会取走硬币数量最多的那一堆。你将会取走硬币数量第二多的那一堆。Bob 将会取走最后一堆。重复这个过程,直到没有更多硬币。给你一个整数数组 piles ,其中 piles[i] 是第 i 堆中硬币的数目。返回你可以获得的最大硬币数目。示例 1:输入:piles = [2,4,1,2,7,8]输出:9解释:选出
2020-08-23 13:14:32 463 1
原创 leetcode 5495. 圆形赛道上经过次数最多的扇区(周赛203)
【题目】5495. 圆形赛道上经过次数最多的扇区给你一个整数 n 和一个整数数组 rounds 。有一条圆形赛道由 n 个扇区组成,扇区编号从 1 到 n 。现将在这条赛道上举办一场马拉松比赛,该马拉松全程由 m 个阶段组成。其中,第 i 个阶段将会从扇区 rounds[i - 1] 开始,到扇区 rounds[i] 结束。举例来说,第 1 阶段从 rounds[0] 开始,到 rounds[1] 结束。请你以数组形式返回经过次数最多的那几个扇区,按扇区编号 升序 排列。注意,赛道按扇区编号升序逆时针
2020-08-23 13:10:41 210
原创 leetcode *201. 数字范围按位与(2020.8.23)
【题目】*201. 数字范围按位与461. 汉明距离*201. 数字范围按位与给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。示例 1:输入: [5,7]输出: 4示例 2:输入: [0,1]输出: 0【解题思路1】位移得到公共前缀找规律可以发现,对所有数字执行按位与运算的结果是所有对应二进制字符串的公共前缀再用零补上后面的剩余位。证明:假设对于所有这些二进制串,前 i
2020-08-23 12:55:15 192
原创 leetcode **679. 24 点游戏(待研究)(2020.8.22)
【题目】**679. 24 点游戏你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。示例 1:输入: [4, 1, 8, 7]输出: True解释: (8-4) * (7-1) = 24示例 2:输入: [1, 2, 1, 2]输出: False注意:除法运算符 / 表示实数除法,而不是整数除法。例如 4 / (1 - 2/3) = 12 。每个运算符对两个数进行运算。特别是我们不能用 - 作为一元运算符。例如,[1, 1, 1
2020-08-22 12:16:06 181
原创 leetcode *529. 扫雷游戏(2020.8.20)
【题目】*529. 扫雷游戏让我们一起来玩扫雷游戏!给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷,‘E’ 代表一个未挖出的空方块,‘B’ 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字(‘1’ 到 ‘8’)表示有多少地雷与这块已挖出的方块相邻,‘X’ 则表示一个已挖出的地雷。现在给出在所有未挖出的方块中(‘M’或者’E’)的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板:如果一个地雷(‘M’)被挖出,游戏就结束了- 把它
2020-08-20 10:26:27 269
原创 leetcode *647. 回文子串(待深究马拉车算法)(2020.8.19)
【题目】*647. 回文子串给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:"abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:"aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"提示:输入的字符串长度不会超过 1000 。【解题思路1】中心扩散枚举每一个可能的回文中心,然后再判断这些子串
2020-08-19 10:26:06 232
原创 leetcode *109. 有序链表转换二叉搜索树(2020.8.18)
【题目】*109. 有序链表转换二叉搜索树给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5【解题思路1】分治将给定的有序链
2020-08-18 10:30:47 167
原创 leetcode **546. 移除盒子(未研究)(2020.8.15)
【题目】**546. 移除盒子给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表示不同的颜色。你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止。每一轮你可以移除具有相同颜色的连续 k 个盒子(k >= 1),这样一轮之后你将得到 k*k 个积分。当你将所有盒子都去掉之后,求你能获得的最大积分和。示例:输入:boxes = [1,3,2,2,2,3,4,3,1]输出:23解释:[1, 3, 2, 2, 2, 3, 4, 3, 1] ----> [1, 3, 3,
2020-08-15 10:15:26 147
原创 leetcode *43. 字符串相乘(模拟十进制乘法)(2020.8.13)
【题目】*43. 字符串相乘66. 加一67. 二进制求和415. 字符串相加989. 数组形式的整数加法445. 两数相加 II给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。nu
2020-08-13 10:38:49 233
原创 leetcode *133. 克隆图(待研究)(2020.8.12)
【题目】*133. 克隆图给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使用邻接列表
2020-08-12 10:12:55 155
原创 leetcode *130. 被围绕的区域(2020.8.11)
【题目】*130. 被围绕的区域给定一个二维的矩阵,包含 ‘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’ 都不会被填充为 ‘X’。 任何不在边界上,或不与边界上的 ‘O’ 相连的 ‘O’ 最终都会被填充为
2020-08-11 10:20:25 166
原创 leetcode *93. 复原IP地址(2020.8.9)
【题目】*93. 复原IP地址给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 ‘.’ 分隔。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]【解题思路1】递归用递归函数 dfs(segId,segStart) 表示我们正在从s[segStart] 的位置开始,搜索 IP 地址中的第 segId 段,其中 segId
2020-08-09 09:11:20 333
原创 leetcode **99. 恢复二叉搜索树(待深究)(2020.8.8)
【题目】**99. 恢复二叉搜索树二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例 1:输入: [1,3,null,null,2] 1 / 3 \ 2输出: [3,1,null,null,2] 3 / 1 \ 2示例 2:输入: [3,1,4,null,null,2] 3 / \1 4 / 2输出: [2,1,4,null,null,3] 2 / \1 4 /
2020-08-08 09:44:21 173
原创 leetcode **336. 回文对(待研究)(2020.8.6)
【题目】**336. 回文对给定一组唯一的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串。示例 1:输入: ["abcd","dcba","lls","s","sssll"]输出: [[0,1],[1,0],[3,2],[2,4]] 解释: 可拼接成的回文串为 ["dcbaabcd","abcddcba","slls","llssssll"]示例 2:输入: ["bat","tab","cat"]输出: [[0,
2020-08-06 09:32:01 221
原创 leetcode 1480. 一维数组的动态和(周赛193)(2021.8.28)
【题目】1480. 一维数组的动态和给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。示例 1:输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。示例 2:输入:nums = [1,1,1,1,1]输出:[1,2,3,4,5]解释:动态和计算过程为 [1, 1+1, 1+1+1, 1+1+1
2020-08-04 13:19:18 190
原创 leetcode *207. 课程表(拓补排序)(2020.8.4)
【题目】*207. 课程表本题和 210. 课程表 II 是几乎一样的题目。如果在过去完成过该题,那么只要将代码中的返回值从「非空数组 / 空数组」修改成「True / False」就可以通过本题。你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2,
2020-08-04 09:37:18 214
原创 leetcode *5476. 找出数组游戏的赢家(周赛200)
【题目】*5476. 找出数组游戏的赢家给你一个由 不同 整数组成的整数数组 arr 和一个整数 k 。每回合游戏都在数组的前两个元素(即 arr[0] 和 arr[1] )之间进行。比较 arr[0] 与 arr[1] 的大小,较大的整数将会取得这一回合的胜利并保留在位置 0 ,较小的整数移至数组的末尾。当一个整数赢得 k 个连续回合时,游戏结束,该整数就是比赛的 赢家 。返回赢得比赛的整数。题目数据 保证 游戏存在赢家。示例 1:输入:arr = [2,1,3,5,4,6,7], k = 2
2020-08-02 12:55:00 176
原创 leetcode 5475. 统计好三元组(周赛200)
【题目】5475. 统计好三元组给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。0 <= i < j < k < arr.length|arr[i] - arr[j]| <= a|arr[j] - arr[k]| <= b|arr[i] - arr[k]| <= c其中 |x| 表示 x 的绝对值。返回 好
2020-08-02 12:51:08 195
原创 leetcode *114. 二叉树展开为链表(在哪见过)(2020.8.2)
【题目】*114. 二叉树展开为链表给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ 5 \ 6【解题思路1】原地操作递归:先把左右子树分别展开,然后将左子树插入到右子树上。注意将左孩子清空。/** * Definition for a binary
2020-08-02 10:23:56 202
原创 leetcode **632. 最小区间(待研究)(2020.8.1)
【题目】**632. 最小区间你有 k 个升序排列的整数数组。找到一个最小区间,使得 k 个列表中的每个列表至少有一个数包含在其中。我们定义如果 b-a < d-c 或者在 b-a == d-c 时 a < c,则区间 [a,b] 比 [c,d] 小。示例 1:输入:[[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]输出: [20,24]解释: 列表 1:[4, 10, 15, 24, 26],24 在区间 [20,24] 中。列表 2:[0
2020-08-01 09:54:00 226
算法设计与分析期末复习笔记+期末习题解答
2020-05-19
算法设计与分析(Algorithm Design )课后习题作业
2020-05-19
信息安全数学基础教程 课堂笔记+例题+期中期末题
2020-05-19
基于php的选课系统 ThinkPHP+MySQL
2019-11-27
汇编语言实验五小学生算术练习软件
2018-02-03
操作系统实验六 磁盘调度算法
2018-02-03
操作系统实验四 动态分区分配算法
2018-02-03
操作系统实验三 预防进程死锁的银行家算法
2018-02-03
数据结构实验(约瑟夫环、哈弗曼树、表达式求值、树的遍历、图的遍历)
2018-02-02
《Linux环境编程》编程题答案及实验报告
2018-02-02
操作系统实验五 虚拟内存页面置换算法
2018-02-02
操作系统实验二 时间片轮转RR进程调度算法
2018-02-02
操作系统实验一 先来先服务FCFS和短作业优先SJF进程调度算法
2018-02-02
TCP/IP实验基于TCP和UDP的应用编程(内含源代码、调试文件和实验报告)
2018-02-02
《TCP/IP:协议分析与应用编程》课后题答案
2018-02-02
Python+Flask+sqlite实现的选课系统
2017-10-17
交通灯控制设计multism12
2017-08-18
Java语言程序设计(基础篇)课后习题答案
2017-07-03
基于php的选课系统 ThinkPHP+MySQL(实现非常完善)
2017-06-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人