LeetCode
文章平均质量分 92
Onwaier
Everything that kills me makes me feel alive
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
560. 和为K的子数组 - 力扣(LeetCode)
和为K的子数组解法从最原始的暴力到前缀和,再到Hash表原创 2020-02-22 10:33:56 · 471 阅读 · 0 评论 -
LeetCode2020第176场周赛
LeetCode2020第176场周赛原创 2020-02-17 18:44:47 · 613 阅读 · 0 评论 -
反向思维 - 提莫攻击 - 力扣(LeetCode)
合并区间,求区间总长度原创 2020-02-15 11:20:18 · 317 阅读 · 0 评论 -
457. 环形数组循环 - 力扣(LeetCode)
快慢指针,主要是如何标记剪枝,实现在O(n)时间内找到环。原创 2020-02-13 12:11:33 · 653 阅读 · 0 评论 -
442. 数组中重复的数据 - 力扣(LeetCode)
442. 数组中重复的数据 - 力扣(LeetCode),用自身元素做标记或一个萝卜一个坑原创 2020-02-09 20:05:36 · 504 阅读 · 0 评论 -
380. 常数时间插入、删除和获取随机元素 - 力扣(LeetCode)
380. 常数时间插入、删除和获取随机元素 - 力扣(LeetCode)原创 2020-02-08 10:47:37 · 377 阅读 · 0 评论 -
289. 生命游戏 - 力扣(LeetCode)
利用位运算,低位存储细胞当前状态,高位存储细胞周围活细胞的数目原创 2020-02-06 10:28:20 · 407 阅读 · 0 评论 -
287. 寻找重复数 - 力扣(LeetCode)
Floyd判圈法的应用原创 2020-02-05 23:31:50 · 561 阅读 · 0 评论 -
标记法 - 缺失数字 - 力扣(LeetCode)
题目描述给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?题解1看到这个题的第一个...原创 2020-02-04 11:39:41 · 553 阅读 · 0 评论 -
238. 除自身以外数组的乘积 - 力扣(LeetCode)
238. 除自身以外数组的乘积 - 力扣(LeetCode)原创 2020-02-02 11:44:35 · 303 阅读 · 0 评论 -
228. 汇总区间 - 力扣(LeetCode)
题目描述给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。示例 1:输入: [0,1,2,4,5,7]输出: ["0->2","4->5","7"]解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。示例 2:输入: [0,2,3,4,6,8,9]输出: ["0","2->4","6","8->9"]解释: 2,3,...原创 2020-01-31 10:02:21 · 338 阅读 · 0 评论 -
219. 存在重复元素 II - 力扣(LeetCode)
题目描述给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1...原创 2020-01-30 10:53:41 · 445 阅读 · 1 评论 -
283. 移动零 - 力扣(LeetCode)
将数组中值为0的元素移到末尾,思路采用的是原地删除值为0的元素(移动为0的),然后在结尾赋0原创 2020-01-29 10:38:36 · 308 阅读 · 0 评论 -
LeetCode2020第170场周赛
LeetCode2020第170场周赛原创 2020-01-06 10:26:13 · 375 阅读 · 0 评论 -
216. 组合总和 III - 力扣(LeetCode)
题目描述找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9题解1二进制位法1−91-91−9所有数字的组合共有292^929种情况,将0−29−10-...原创 2020-01-03 13:07:34 · 338 阅读 · 0 评论 -
209. 长度最小的子数组 - 力扣(LeetCode)
题目描述给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂...原创 2019-12-29 15:54:07 · 387 阅读 · 0 评论 -
217. 存在重复元素 - 力扣(LeetCode)
题目描述给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true题解1排序,然后判断相邻元素是否相等,时间复...原创 2019-12-28 16:49:08 · 284 阅读 · 0 评论 -
189. 旋转数组 - 力扣(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...原创 2019-12-26 14:48:51 · 315 阅读 · 0 评论 -
169. 多数元素 - 力扣(LeetCode)
题目描述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2题解1用unordered_map统计每个元素出现的次数,最后输出出现最多的元素即可。代码1/*用uno...原创 2019-12-25 12:17:43 · 470 阅读 · 0 评论 -
162. 寻找峰值 - 力扣(LeetCode)
题目描述峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引 2。...原创 2019-12-24 18:35:33 · 315 阅读 · 0 评论 -
154. 寻找旋转排序数组中的最小值 II - 力扣(LeetCode)
题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。注意数组中可能存在重复的元素。示例 1:输入: [1,3,5]输出: 1示例 2:输入: [2,2,2,0,1]输出: 0说明:这道题是 寻找旋转排序数组中的最小值 的延伸题目。允许重复会影响算法...原创 2019-12-23 21:16:49 · 269 阅读 · 0 评论 -
LeetCode2019第 168 场周赛
5291. 统计位数为偶数的数字题目描述给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数。示例 1:输入:nums = [12,345,2,6,7896]输出:2解释:12 是 2 位数字(位数为偶数) 345 是 3 位数字(位数为奇数) 2 是 1 位数字(位数为奇数) 6 是 1 位...原创 2019-12-22 22:42:05 · 286 阅读 · 0 评论 -
153. 寻找旋转排序数组中的最小值 - 力扣(LeetCode)
题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6,7,0,1,2]输出: 0题解1二分查找。对原来的二分查找进行修改。时间复杂度为...原创 2019-12-21 16:06:50 · 302 阅读 · 0 评论 -
152. 乘积最大子序列 - 力扣(LeetCode)
题目描述给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。题解仿照最大连续序列和的思想,采用动态规划。dp1[i]表示以nums[i]结尾的...原创 2019-12-20 14:18:05 · 282 阅读 · 0 评论 -
128. 最长连续序列 - 力扣(LeetCode)
题目描述题解1给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。代码1/*如果排序*/class Solution {public: int longestConsecutive(vector<...原创 2019-12-20 00:20:13 · 424 阅读 · 0 评论 -
126. 单词接龙 II - 力扣(LeetCode)
题目描述给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回一个空列表。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 b...原创 2019-12-18 17:21:50 · 435 阅读 · 0 评论 -
167. 两数之和 II - 输入有序数组 - 力扣(LeetCode)
题目描述给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], ...原创 2019-12-18 10:27:39 · 268 阅读 · 0 评论 -
LeetCode2019第 15 场双周赛
1287. 有序数组中出现次数超过25%的元素题目描述给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%。请你找到并返回这个整数示例:输入:arr = [1,2,2,6,6,6,6,7,10]输出:6提示:1 <= arr.length <= 10^40 <= arr[i] <= 10...原创 2019-12-16 16:55:08 · 320 阅读 · 0 评论 -
LeetCode 2019年第163场周赛
1260. 二维网格迁移题目描述给你一个 n 行 m 列的二维网格 grid 和一个整数 k。你需要将 grid 迁移 k 次。每次「迁移」操作将会引发下述活动:位于 grid[i][j] 的元素将会移动到 grid[i][j + 1]。位于 grid[i][m - 1] 的元素将会移动到...原创 2019-11-27 10:26:19 · 312 阅读 · 0 评论 -
LeetCode2019年第165场周赛
1275. 找出井字棋的获胜者题目描述A 和 B 在一个 3 x 3 的网格上玩井字棋。井字棋游戏的规则如下:玩家轮流将棋子放在空方格 (" ") 上。第一个玩家 A 总是用 “X” 作为棋子,而第二个玩家 B 总是用 “O” 作为棋子。“X” 和 “O” 只能放在空方格中,而不能放在已经被占用的方格上。只要有 3...原创 2019-12-02 21:41:56 · 348 阅读 · 0 评论 -
LeetCode2019第 164 场周赛
1266. 访问所有点的最小时间题目描述平面上有 n 个点,点的位置用整数坐标表示 points[i] = [xi, yi]。请你计算访问所有这些点需要的最小时间(以秒为单位)。你可以按照下面的规则在平面上移动:每一秒沿水平或者竖直方向移动一个单位长度,或者跨过对角线(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。必须按照数组中出现的顺序来访问这些点...原创 2019-11-27 19:46:04 · 393 阅读 · 1 评论 -
LeetCode第13场双周赛
1256. 加密数字题目描述给你一个非负整数 num ,返回它的「加密字符串」。加密的过程是把一个整数用某个未知函数进行转化,你需要从下表推测出该转化函数:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tAR6SOVS-1574228618510)(https://i.loli.net/2019/11/20/qP8LSD2McVuxWC4.png “题目描述...原创 2019-11-20 13:45:16 · 375 阅读 · 1 评论 -
2019LeetCode第162场周赛
5255. 奇数值单元格的数目题目描述给你一个 n 行 m 列的矩阵,最开始的时候,每个单元格中的值都是 0。另有一个索引数组 indices,indices[i] = [ri, ci] 中的 ri 和 ci 分别表示指定的行和列(从 0 开始编号)。你需要将每对 [ri, ci] 指定的行和列上的所有单元格的值加 1。请你在执行完所有 indices 指定的增量操作后,返回矩阵中 「奇...原创 2019-11-10 21:44:10 · 343 阅读 · 0 评论 -
2019LeetCode第 161 场周赛
1247. 交换字符使得字符串相同题目描述有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 “x” 和 “y”,你需要通过「交换字符」的方式使这两个字符串相同。每次「交换字符」的时候,你都可以在两个字符串中各选一个字符进行交换。交换只能发生在两个不同的字符串之间,绝对不能发生在同一个字符串内部。也就是说,我们可以交换 s1[i] 和 s2[j],但不能交换 s1[i] 和 ...原创 2019-11-03 23:23:48 · 405 阅读 · 0 评论 -
2019LeetCode第 12 场双周赛
5097. 力扣排行榜题目描述新一轮的「力扣杯」编程大赛即将启动,为了动态显示参赛者的得分数据,需要设计一个排行榜 Leaderboard。请你帮忙来设计这个 Leaderboard 类,使得它有如下 3 个函数:addScore(playerId, score):假如参赛者已经在排行榜上,就给他的当前得分增加 score 点分值并更新排行。假如该参赛者不在排行榜上,就把他添加到榜单上...原创 2019-11-03 20:18:55 · 678 阅读 · 0 评论 -
123. 买卖股票的最佳时机 III - 力扣(LeetCode)
题目描述给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获...原创 2019-11-02 10:30:23 · 300 阅读 · 0 评论 -
120.买卖股票的最佳时机 II - 力扣(LeetCode)
题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔...原创 2019-10-30 19:34:10 · 281 阅读 · 0 评论 -
2019LeetCode第160场周赛
5238. 找出给定方程的正整数解题目描述给出一个函数 f(x, y) 和一个目标结果 z,请你计算方程 f(x,y) == z 所有可能的正整数 数对 x 和 y。给定函数是严格单调的,也就是说:f(x, y) < f(x + 1, y)f(x, y) < f(x, y + 1)函数接口定义如下:interface CustomFunction {public:/...原创 2019-10-29 00:12:17 · 274 阅读 · 0 评论 -
120. 三角形最小路径和 题解 - 力扣(LeetCode)
题目描述给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[[2],[3,4],[6,5,7],[4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。题解1动态规划很常见的一个问题...原创 2019-10-25 18:30:57 · 309 阅读 · 0 评论 -
121. 买卖股票的最佳时机 - 力扣(LeetCode)
题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意...原创 2019-10-23 12:45:31 · 289 阅读 · 0 评论
分享