![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
假如子弹换成糖果
目前大部分学习wiki更新在baidu内网wiki中。
展开
-
【LeetCode】665. 非递减数列
题目描述给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i < n),满足 array[i] <= array[i + 1]。示例 1:输入: [4,2,3]输出: True解释: 你可以通过把第一个4变成1来使得它成为一个非递减数...原创 2018-10-12 13:51:35 · 325 阅读 · 0 评论 -
【LeetCode】146. LRU缓存机制
题目描述运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作:获取数据 get 和写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近...原创 2019-09-10 17:53:48 · 141 阅读 · 0 评论 -
【LeetCode】238. 除自身以外数组的乘积
题目描述给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。 思路用递归肯定是或双循环肯定是O(n^2)级别的,...原创 2019-02-11 11:08:17 · 168 阅读 · 0 评论 -
【LeetCode】215. 数组中的第K个最大元素
题目描述在未排序的数组中找到第 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说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。 思路...原创 2019-02-09 20:18:31 · 291 阅读 · 0 评论 -
【LeetCode】只出现一次的数字 I II III 总结
136.只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?解答:每个整数与它本身异或(^)的结果为0,所以所有数异或的结果则为与众不同的那个数。class Solution {public: int singleNumber(vect...原创 2019-01-01 18:58:28 · 1182 阅读 · 0 评论 -
【LeetCode】76. 最小覆盖子串
题目描述给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 ""。 如果 S 中存在这样的子串,我们保证它是唯一的答案。 思路及代码class Solution {public: ...原创 2018-12-12 11:15:54 · 196 阅读 · 0 评论 -
【LeetCode】43. 字符串相乘
题目描述给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。原创 2018-12-06 17:12:05 · 181 阅读 · 0 评论 -
【LeetCode】367. 有效的完全平方数
题目描述给定一个正整数num,编写一个函数,如果num是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1:输入:16输出:True示例 2:输入:14输出:False思路一、直接循环判断的方法会超时,用简单的二分查找即可,注意这里的q和mid在处理时可能比较大,要用long long...原创 2018-12-03 21:43:16 · 271 阅读 · 0 评论 -
【LeetCode】594. 最长和谐子序列
题目描述和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。示例 1:输入: [1,3,2,2,5,2,3,7]输出: 5原因: 最长的和谐数组是:[3,2,2,2,3].说明: 输入的数组长度最大不超过20,000. 思路利用map的迭代器自动排序的特点,先统计每个数字出...原创 2018-11-13 15:29:29 · 163 阅读 · 0 评论 -
【LeetCode】123. 买卖股票的最佳时机 III
题目描述给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这...原创 2018-10-10 19:28:35 · 536 阅读 · 0 评论 -
【LeetCode】442. 数组中重复的数据
题目描述给定一个整数数组 a,其中1 ≤ a[i] ≤n(n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?示例:输入:[4,3,2,7,8,2,3,1]输出:[2,3]我的思路(超时)从第一个数开始查询,如果第一个数与第二个数相等,将nums[i]放入r...原创 2018-10-10 14:04:41 · 503 阅读 · 0 评论 -
【LeetCode】15. 三数之和
题目描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]] 思...转载 2018-10-09 19:45:46 · 81 阅读 · 0 评论 -
【LeetCode】695. 岛屿的最大面积
题目描述给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0]...原创 2018-10-09 19:15:16 · 244 阅读 · 0 评论 -
【LeetCode】84. 柱状图中最大的矩形
题目描述给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。 图中阴影部分为所能勾勒出的最大...原创 2018-10-15 19:34:21 · 191 阅读 · 0 评论 -
【LeetCode】891. 子序列宽度之和
题目描述给定一个整数数组 A ,考虑 A 的所有非空子序列。对于任意序列 S ,设 S 的宽度是 S 的最大元素和最小元素的差。返回 A 的所有子序列的宽度之和。由于答案可能非常大,请返回答案模 10^9+7。示例:输入:[2,1,3]输出:6解释:子序列为 [1],[2],[3],[2,1],[2,3],[1,3],[2,1,3] 。相应的宽度是 0,0,0,1...原创 2018-10-12 17:38:52 · 455 阅读 · 0 评论 -
二叉树非递归遍历
先序对于任一结点p:1)访问结点p,并将结点p入栈;2)判断结点p的左孩子是否不空先while循环直到空,这其间要输出根节点值(因为是先序);这之后,取栈顶结点并进行出栈操作,令 p = 栈顶元素的右孩子(如果不为空循环,如果为空证明遍历完毕,会再取栈顶元素);3)直到p为NULL并且栈为空,则遍历结束。class Solution {public: vector<...原创 2019-09-14 17:08:49 · 198 阅读 · 2 评论