- 博客(58)
- 资源 (33)
- 收藏
- 关注
原创 leetcode *75. 颜色分类(荷兰国旗/三色旗)(2020.10.7)
【题目】给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。首...
2020-03-31 17:29:17 385
原创 leetcode *215. 数组中的第K个最大元素(堆排序)(2020.6.29)
【题目】在未排序的数组中找到第 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【解题思路1】先排序,然后直接返回 nums.length-k 位置的元素就是第k大元素cl...
2020-03-31 17:01:23 283
原创 leetcode *147. 对链表进行插入排序(2020.11.20)
【题目】对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。...
2020-03-31 16:16:17 293
原创 leetcode *912. 排序数组(各种经典排序算法)(2020.3.31)
【题目】给你一个整数数组 nums,请你将该数组升序排列。示例 1:输入:nums = [5,2,3,1]输出:[1,2,3,5]示例 2:输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1 <= nums.length <= 50000-50000 <= nums[i] <= 50000经典排序算法的整理【解...
2020-03-31 15:42:11 2015 2
原创 leetcode 剑指 Offer 59 - I. 滑动窗口的最大值 & **239. 滑动窗口最大值(单调队列)
【题目】同 239. 滑动窗口最大值(困难)给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1 ...
2020-03-30 23:31:44 326
原创 leetcode 994. 腐烂的橘子(方向数组)(2020.3.4)
【题目】在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。示例 1:输入:[[2,1,1],[1,1,0],[0,1,1]]输出:4示例 2:输入:[[2,...
2020-03-30 22:51:31 229
原创 leetcode 剑指 Offer 62. 圆圈中最后剩下的数字(约瑟夫环)(2020.3.30)
【题目】0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2...
2020-03-30 22:13:55 221
原创 leetcode 剑指 Offer 57 - II. 和为s的连续正数序列(2020.3.6)
【题目】输入一个正整数 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 <...
2020-03-29 23:07:34 184
原创 leetcode *1395. 统计作战单位数(周赛182)
【题目】n 名士兵站成一排。每个士兵都有一个 独一无二 的评分 rating 。每 3 个士兵可以组成一个作战单位,分组规则如下:从队伍中选出下标分别为 i、j、k 的 3 名士兵,他们的评分分别为 rating[i]、rating[j]、rating[k]作战单位需满足: rating[i] < rating[j] < rating[k] 或者 rating[i] > ...
2020-03-29 22:07:54 279
原创 leetcode 5368. 找出数组中的幸运数(周赛182)
【题目】在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。给你一个整数数组 arr,请你从中找出并返回一个幸运数。如果数组中存在多个幸运数,只需返回 最大 的那个。如果数组中不含幸运数,则返回 -1 。示例 1:输入:arr = [2,2,3,4]输出:2解释:数组中唯一的幸运数是 2 ,因为数值 2 的出现频次也是 2 。示例 2:输入:...
2020-03-29 21:57:36 420
原创 leetcode *1162. 地图分析(方向数组)(2020.3.29)
【题目】你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗?请返回该海洋区域到离它最近的陆地区域的距离。我们这里说的距离是『曼哈顿距离』( Manhattan Distance):(x0, y0) 和 (x1, y1) 这两个区域之间的距离是 |...
2020-03-29 21:47:43 298
原创 leetcode 575. 分糖果
【题目】给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例 1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。 最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种...
2020-03-28 22:56:55 200
原创 leetcode 1103. 分糖果 II(2020.3.5)
【题目】排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。重复上述过程(每次都比上一次...
2020-03-28 22:41:19 223
原创 leetcode 剑指 Offer 24. 反转链表 & 206. 反转链表(2020.3.2)
【题目】反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?【解题思路1】遍历结点修改指针/** * Definition for singly-linked list. * public cl...
2020-03-28 21:55:56 188
原创 leetcode *208. 实现 Trie (前缀树)
前缀树总结【题目】实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsW...
2020-03-28 21:32:16 108
原创 leetcode *820. 单词的压缩编码-后缀树(待研究)(2020.3.28)
【题目】给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。例如,如果这个列表是 [“time”, “me”, “bell”],我们就可以将其表示为 S = “time#bell#” 和 indexes = [0, 2, 5]。对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 “#” 结束,来恢复我们之前的单词列表。那么成功对给定单词列表...
2020-03-28 21:22:08 232
原创 leetcode 461. 汉明距离
【题目】两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。题解:先用异或操作得到xor,xor...
2020-03-27 22:26:30 140
原创 leetcode 190. 颠倒二进制位
【题目】颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为...
2020-03-27 21:55:52 162
原创 leetcode 剑指 Offer 15. 二进制中1的个数 & 191. 位1的个数(位操作运算符表格)
【题目】编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:输入:0000000000000000000000001000...
2020-03-27 21:28:35 166
原创 leetcode 189. 旋转数组
【题目】给定一个数组,将数组中的元素向右移动 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,9...
2020-03-27 18:59:07 117
原创 leetcode 172. 阶乘后的零 & 面试题 16.05. 阶乘尾数
【题目】给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。【解题思路1】计算N的阶乘(N!=12…*N)有多少个后缀0,即计算N!里有多少个10,也就是计算N!里有多少个2...
2020-03-27 17:19:37 227
原创 leetcode 914. 卡牌分组(2020.3.27)
【题目】给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。示例 1:输入:[1,2,3,4,4,3,2,1]输出:true解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]示例 2:输入...
2020-03-27 17:00:32 193
原创 leetcode 168. Excel表列名称(26进制改)(2021.6.29)& 171. Excel表列序号(2021.7.30)
【题目】给定一个正整数,返回它在 Excel 表中相对应的列名称。例如,1 -> A2 -> B3 -> C…26 -> Z27 -> AA28 -> AB…示例 1:输入: 1输出: "A"示例 2:输入: 28输出: "AB"示例 3:输入: 701输出: "ZY"【解题思路1】26进制,把Z看做十进制当中的0...
2020-03-26 23:21:49 271
原创 leetcode 167. 两数之和 II - 输入有序数组(2020.7.20)
【题目】给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], ...
2020-03-26 22:35:38 217
原创 leetcode 999. 可以被一步捕获的棋子数(2020.3.26)
【题目】在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。车按国际象棋中的规则移动:它选择四个基本方向中的一个(北,东,西和南),然后朝那个方向移动,直到它选择停止、到达棋盘的边缘或移动到同一方格来捕获该方格上颜色相反的卒。另外,车...
2020-03-26 22:18:23 177
原创 leetcode 剑指 Offer 52. 两个链表的第一个公共节点 & 160. 相交链表 & 面试题 02.07. 链表相交(双指针)
【题目】编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 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输入解释:相交节点的值为 8 ...
2020-03-25 17:16:41 223
原创 leetcode 141. 环形链表(2020.10.9)
【题目】给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0输出:...
2020-03-25 16:52:00 163
原创 leetcode 122. 买卖股票的最佳时机 II(2020.11.8)
【题目】给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这...
2020-03-25 16:21:33 171
原创 leetcode *剑指 Offer 63. 股票的最大利润 & 121. 买卖股票的最佳时机(2020.3.9)
【题目】给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 ...
2020-03-25 14:46:09 542
原创 leetcode 892. 三维形体的表面积(方向数组)(2020.3.25)
【题目】在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。请你返回最终形体的表面积。示例 1:输入:[[2]]输出:10示例 2:输入:[[1,2],[3,4]]输出:34示例 3:输入:[[1,0],[0,2]]输出:16示例 4:输入:[[1,1,...
2020-03-25 13:45:41 242
原创 leetcode *337. 打家劫舍 III(树形-动态规划)(2020.8.5)
【题目】在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1输入: [3,2...
2020-03-24 23:48:25 255
原创 leetcode *213. 打家劫舍 II
【题目】你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [2,3,2]输出: 3解...
2020-03-24 23:34:26 95
原创 leetcode 198. 打家劫舍(2020.5.29) & 面试题 17.16. 按摩师(2020.3.24)(滚动数组)
【题目】一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。注意:本题相对原题稍作改动(PS:数组下标表示预约顺序,数组值表示当前预约需要的时长)示例 1:输入: [1,2,3,1]输出: 4解释: 选择 1 号预约和 3 ...
2020-03-24 22:16:50 285 2
原创 leetcode 119. 杨辉三角 II
【题目】给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]进阶:你可以优化你的算法到 O(k) 空间复杂度吗?【解题思路1】118题的基础上稍稍修改,本题从第0行开始计算,只需要返回第k行class Solution { public List<Intege...
2020-03-23 23:23:55 222
原创 leetcode 118. 杨辉三角
【题目】给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]【解题思路1】递归递归class Solution { public List<List&l...
2020-03-23 22:46:29 127
原创 leetcode 876. 链表的中间结点(2020.3.23)
【题目】给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.n...
2020-03-23 22:07:20 119
原创 leetcode 111. 二叉树的最小深度(2020.8.21)
【题目】给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.【解题思路1】/** * Definition for a binary t...
2020-03-22 23:23:45 218
原创 leetcode *945. 使数组唯一的最小增量(2020.3.22)
【题目】给定整数数组 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, 7]。可以...
2020-03-22 22:54:25 160
原创 leetcode 112. 路径总和(2020.7.7)
【题目】给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \7 2 1返回 true, 因为存在目标...
2020-03-19 23:57:25 148
原创 leetcode 剑指 Offer 28. 对称的二叉树 & 101. 对称二叉树(2020.5.31)
【题目】给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法解决这个问...
2020-03-19 23:43:41 200
算法设计与分析期末复习笔记+期末习题解答
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关注的人