
GO
lucifly
这个作者很懒,什么都没留下…
展开
-
LeetCode 1014. 最佳观光组合
LeetCode 1014. 最佳观光组合给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。返回一对观光景点能取得的最高分。分析没想到是一道智力题。求最大的A[i] + A[j] + i - j,可以分解为求(A[i] + i) + (A[j] - j)。(A[i] + i) 和 (A[j] - j)都原创 2020-06-17 14:11:58 · 160 阅读 · 0 评论 -
LeetCode 862. 和至少为 K 的最短子数组
LeetCode 862. 和至少为 K 的最短子数组返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K 。如果没有和至少为 K 的非空子数组,返回 -1 。思路初看这道题类似最大子数组和,本来打算用滑动窗口解决,但是超时。看完题解可以使用 前缀和数组 和 递增队列 解。官方的题解不是很清楚,这里试着详细解释一下。前缀和数组P[i]表示数组前i个元素的和。那么本题就可以转化为y>xP[y]−P[x]>=K(1)y > x \\P[y] - P[x]原创 2020-06-10 22:24:53 · 269 阅读 · 0 评论 -
Leetcode 287 寻找重复数
Leetcode 287 寻找重复数题目描述给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2)O(n^2)O(n2) 。数组中只有一个重复的数字,但它可能不止重复出现一次。问题分析题目本身不难,暴力解遍历, 使用map索引,O(n)O(n)O(n)空间,O(n)O原创 2020-05-26 13:37:56 · 255 阅读 · 0 评论 -
Leetcode 42. 接雨水
Leetcode 42. 接雨水题目描述给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。题目分析此题可以用暴力或者动态规划解。分析动态规划的过程,一个位置能蓄多...原创 2020-03-24 23:42:14 · 147 阅读 · 0 评论 -
LeetCode 5 最长回文子串
题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。思路一眼看上去就是动态规划,当然还有更快的方法,详见Manacher算法。动态规划步骤确定状态空间确定状态转移函数,子状态的关系遍历状态空间,填状态标注得到结果状态压缩,优化算法本题思路1. 确定状态空间string s中的最长回文子串即确定s[i:j]是否是回文子串和回文串...原创 2020-02-27 20:32:53 · 245 阅读 · 0 评论 -
LeetCode 5 最长回文子串--Manacher算法
题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。思路本文一眼看上去可以用动态规划,解法详见下一篇博客。动态规划复杂度是 O(n2)O(n^2)O(n2) ,看完题解后发现有更简单的解法。Manacher算法的复杂度可以到 O(n)O(n)O(n)。本文基本参考这篇的讲解,附带自己的理解Manacher 算法原理Manacher的是...原创 2020-02-27 20:09:39 · 302 阅读 · 0 评论 -
leetcode 1. 两数之和
题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路...原创 2020-02-24 22:46:28 · 179 阅读 · 0 评论