![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题
静静静雅
这个作者很懒,什么都没留下…
展开
-
LeetCode174—地下城游侠,C++
一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其...原创 2020-04-26 17:28:48 · 207 阅读 · 1 评论 -
LeetCode300—最长上升子序列,C++
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。最直观的方法就是两层循环,分别找到每一个数结上升子序列,再找到其最大值。可以用动态规划的思路,如果下一个比之前某一个大那么就可能更新以下一个数结尾的上升子序列的长度,可以使用数组来保存中间的结...原创 2020-04-26 15:40:49 · 268 阅读 · 0 评论 -
Leetcose200—岛屿数量
给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3解释: 每座...原创 2020-04-20 09:47:35 · 195 阅读 · 0 评论 -
Leetcode11—盛水最多的容器,C++
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。看到题最简单的想法就是用两层循环求出每一个柱子作为一条边能盛水的最大容量,再找出其...原创 2020-04-18 09:56:12 · 191 阅读 · 0 评论 -
Leetcode172—阶乘后的零,C++解法
给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.首先设想一下什么情况下会出现末尾是零,显而易见2*5=10,因此将因数进行因式分解,统计出一共有多少对2和5,另外因为2的个数是远大于5的,所以只需要统计出有多少个5即可。...原创 2020-04-18 09:21:26 · 194 阅读 · 0 评论 -
Leetcode55—跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎...原创 2020-04-17 16:30:30 · 149 阅读 · 0 评论 -
Leetcode56—合并区间
给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。...原创 2020-04-16 21:35:38 · 79 阅读 · 0 评论 -
Leetcode345—反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"这道题目的关键就是找到元音字母,然后将元音字母进行交换,因为是反转,所以需要两个指针从前后来寻找元音字母,元音字母有aeiouAEIOU,当没找到时就移动指针直到找到元音字母或者指针越界。c...原创 2020-01-15 21:04:04 · 114 阅读 · 0 评论 -
Leetcode633—平方数之和
给定一个非负整数c,你要判断是否存在两个整数 a 和 b,使得a2 + b2 = c。示例1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5这道题的题目理解起来比较容易,就是将一个数分为两个数的平方和,关键就是寻找这两个数是否存在,又是寻找两个数的,拿还是用双指针。 bool judgeSquareSum(int c) { lo...原创 2020-01-15 20:24:03 · 157 阅读 · 0 评论 -
Leetcode167—两数之和II-输入有序数组
给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], ...原创 2020-01-15 20:06:07 · 201 阅读 · 0 评论 -
LeetCode189——旋转数组
题目介绍:给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。输入: [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]开始觉得这道题还挺简单的,后来测试时出现了...原创 2019-03-02 15:13:38 · 242 阅读 · 0 评论 -
LeetCode217——存在重复元素
题目:如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。刚开始看觉得这道题还蛮简单的,两层循环不就ok了,然而在测试时有时间限制,OTZ,看了一个大佬的评论,感觉涨知识了,先贴上我的丑丑的代码吧class Solution(object): def containsDuplicate(self, nums): ...原创 2019-03-02 19:58:02 · 94 阅读 · 0 评论 -
leetcode 121——买卖股票的最佳时机
题目介绍:给定一个数组,它的第i个元素是一支给定股票第i天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔...原创 2019-03-02 10:19:50 · 89 阅读 · 0 评论 -
Leetcode498—对角线遍历
给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。解题思路:我第一看看到这个题目就想用状态机去做,因为在这个遍历过程中只有两种状态:向右上移动,向左下移动。只要将状态转换条件设置好就OK了。起始状态是右上,从右上转换到左下有两种情况,1.到第一行没法向上了就向右移动一位转为左下状态。2.到最右边了没法...原创 2019-12-09 10:38:13 · 147 阅读 · 0 评论 -
Leetcode78—子集
给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入::nums = [1,2,3]输出:[ [3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]方法一:回溯法回溯法是一种搜索算法,目的寻找满足条件的所有情况,它的特点是会返回,...原创 2019-12-08 17:54:34 · 73 阅读 · 0 评论 -
Leetcode724—寻找数组的中心索引
题目描述:给定一个整数类型的数组nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出: 3解释:...原创 2019-12-07 11:42:52 · 91 阅读 · 0 评论