
Leetcode
sanctuary_wu
这个作者很懒,什么都没留下…
展开
-
LeetCode 167 两数之和II-输入有序数组(双指针)
题目题目链接给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目标数 9 。因此 index1 =原创 2020-12-05 16:15:07 · 117 阅读 · 0 评论 -
LeetCode 27 移除元素
题目描述题目链接给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,1,2,原创 2020-12-05 10:00:23 · 85 阅读 · 0 评论 -
LeetCode 283 移动零(两次遍历与一次遍历方法)
题目描述题目链接给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解题思路一本题把不是零的数往数组的前面放,用index记录位置,之后将所有后面的数置零即可。代码class Solution {public: void moveZeroes(vector<int>& nums)原创 2020-12-05 09:52:06 · 189 阅读 · 0 评论 -
LeetCode 349 两个数组的集合(双指针 + set)
题目题目链接给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。解题思路一对两个数组排序后,通过双指针不断比较,相等时只有ans为空或者ans中最后一个元素不等于当前元素时才放入ans(防止重复元素放入)代码class So原创 2020-12-03 20:06:34 · 155 阅读 · 0 评论 -
LeetCode 54 螺旋矩阵
题目大意题目链接给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,2,3,4,8,12,11,10,9,5,6,7]解题思路如果没有做过此类题目可以看螺旋矩阵II(点这里原创 2020-05-10 17:58:30 · 133 阅读 · 0 评论 -
LeetCode 59 螺旋矩阵II
题目大意题目链接给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]解题思路本题因为生成矩阵是正方形,所以边界相对好判断,设置四个边界不断进行缩小即可。还有就是初始通过resize对数组控制大小class Solution {public: vector<vector<int>> generateMatrix(原创 2020-05-10 17:50:26 · 151 阅读 · 0 评论 -
LeetCode 503 下一个更大元素II(单调栈)
题目大意题目链接给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大...原创 2020-05-07 11:42:51 · 238 阅读 · 0 评论 -
LeetCode 496 下一个更大元素(单调栈)
题目题目链接给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = ...原创 2020-05-07 10:14:41 · 232 阅读 · 0 评论 -
LeetCode 739 每日温度(单调栈)
题目描述题目链接根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000...原创 2020-05-07 09:44:23 · 238 阅读 · 0 评论 -
LeetCode 接雨水(单调栈,双指针,DP)
题目链接给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6解题思路本题对雨水的计算方法有两大类一种是竖着计算即按照列,另...原创 2020-05-04 16:24:36 · 223 阅读 · 0 评论 -
矩形柱中最大的矩形(单调栈遍历一遍解决)
题目链接题目大意给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。解题思路:首先考虑我们怎么求出最大的矩形面积,对于每一列来说我们分别向左右延伸...原创 2020-05-04 13:54:08 · 306 阅读 · 0 评论