![](https://img-blog.csdnimg.cn/202006060939004.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
LeetCode 算法
2020/6/1 开启每日一题LeetCode之路
陈野菜
且视他人之凝目如盏盏鬼火,大胆地去走你的夜路!
展开
-
「力扣」1014. 最佳观光组合(第十五天)
1014. 最佳观光组合题目解题题目题目难度:中等给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。返回一对观光景点能取得的最高分。示例输入:[8,1,5,2,6]输出:11解释:i = 0, j = 2, A[i] + A[j] + i - j = 8 + 5 + 0 - 2 = 11解题原创 2020-06-24 20:33:55 · 93 阅读 · 0 评论 -
「力扣」53. 最大子序和(第十四天)
53. 最大子序和题目解题一.暴力二.动态规划题目题目难度:简单给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解题一.暴力使用双层循环,穷举所有的子区间;然后再对子区间内的所有元素求和;class Solution { public int maxSubArray(int[] nu原创 2020-06-23 11:13:49 · 101 阅读 · 0 评论 -
「力扣」122. 买卖股票的最佳时机 II(第十三天)
终于搞懂动态规划了T-T!!!我爱动态规划!!122. 买卖股票的最佳时机 II题目解题一.贪心算法二.动态规划题目题目难度:简单给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 .原创 2020-06-21 21:14:25 · 129 阅读 · 0 评论 -
「力扣」121. 买卖股票的最佳时机(第十二天)
121. 买卖股票的最佳时机题目解题一.暴力枚举二.暴力枚举的优化题目题目难度:简单给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例1输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入, 在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不原创 2020-06-20 10:43:19 · 86 阅读 · 0 评论 -
「力扣」55. 跳跃游戏(第十一天)
55. 跳跃游戏题目解题1.直接跳2.贪心算法3.动态规划题目题目难度:中等给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例1输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例2输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最原创 2020-06-18 23:11:24 · 132 阅读 · 0 评论 -
「力扣」220. 存在重复元素 III(第十天)
220. 存在重复元素 III题目解题暴力滑动窗口题目给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ。示例1:输入: nums = [1,2,3,1], k = 3, t = 0输出: true示例2:输入: nums = [1,0,1,1], k = 1, t = 2输出: true解题对题目理解:在数组 nums[i] 中,在任意有效区间 [i,原创 2020-06-10 22:09:51 · 218 阅读 · 0 评论 -
「力扣」219. 存在重复元素 II (第九天)
219. 存在重复元素 II 题目解题题目给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。示例1:输入: nums = [1,2,3,1], k = 3输出: true示例2:输入: nums = [1,2,3,1,2,3], k = 2输出: false解题我一看到这道题,就用双重for循环遍历数组,找到相同的两个值,判断索引下标的绝对值是否 <=k。原创 2020-06-10 19:21:39 · 166 阅读 · 0 评论 -
「力扣」217. 存在重复元素(第八天)
217. 存在重复元素题目题目难度:简单给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。原创 2020-06-09 10:00:41 · 329 阅读 · 1 评论 -
「力扣」274. H 指数(第七天)
274. H 指数 题目难度:中等给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的 h 指数。h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。(其余的 N - h 篇论文每篇被引用次数 不超过 h 次。)例如:某人的 h 指数是 20,这表示他已发表的论文中,每篇被引用了至少 20 次的论文总共有 20 篇。原创 2020-06-08 23:26:20 · 213 阅读 · 0 评论 -
「力扣」134. 加油站(第六天)
134. 加油站题目解题题目在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例1输入: gas = [1,2,3,4,5]cost =原创 2020-06-07 11:31:02 · 185 阅读 · 0 评论 -
「力扣」299. 猜数字游戏(第五天)
299. 猜数字游戏题目难度:简单你正在和你的朋友玩 猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜。每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为“Bulls”, 公牛),有多少位数字猜对了但是位置不对(称为“Cows”, 奶牛)。你的朋友将会根据提示继续猜,直到猜出秘密数字。请写出一个根据秘密数字和朋友的猜测数返回提示的函数,用 A 表示公牛,用 B 表示奶牛。请注意秘密数字和朋友的猜测数都可能含有重复数字。原创 2020-06-06 09:09:22 · 190 阅读 · 0 评论 -
「力扣」189.旋转数组(第四天)
189.旋转数组题目:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。原创 2020-06-04 16:33:25 · 142 阅读 · 0 评论 -
「力扣」80. 删除排序数组中的重复项 II(第三天)
80.删除排序数组中的重复项 II题目难度:中等给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考虑数组中超出新长度后面的元素。分析:将快指针(当前遍历的数字)和慢指针指原创 2020-06-04 14:51:01 · 188 阅读 · 0 评论 -
「力扣」26.删除排序数组中的重复项 I(第二天)
26.删除排序数组中的重复项 I题目难度:简单给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组并在使用 O(1) 额外空间的条件下完成。原创 2020-06-02 21:12:11 · 108 阅读 · 0 评论 -
「力扣」27.移除数组 (第一天)
移除数组方法一:两个数组方法二:双指针给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。样式1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。样式2:给定 nu原创 2020-06-01 17:37:09 · 143 阅读 · 0 评论