LeetCode
yq313210
这个作者很懒,什么都没留下…
展开
-
LeetCode分类:查找二
查找实战案例一:两数之和题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路 首先想到暴力解决,即第一遍遍历数组,第二遍遍历当前遍历值之后的元素,但是时原创 2020-08-28 23:17:37 · 333 阅读 · 0 评论 -
LeetCode分类03:查找
印象最深的一题应该是这个:给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。主要思想是二分查找题目要求的是分割成连续的子数组,并且结果为所有满足分组个数的最大和的最小值。仔细想想 最后的结果应该是介于原数组的最大值和原数组的和之间的某个值。所以用二分查找。low = max(nums) high = sum(nums) mid = (low+high) // 2 相当于向下取整。假设此时mid 就是最后的结果,这原创 2020-08-25 16:16:29 · 189 阅读 · 0 评论 -
LeetCode分类02:动态规划
动态规划动态规划常适用于有重叠子问题和最优子结构性质的问题,它的本质是以空间换取时间。它的模板步骤如下:确定动态规划状态;写状态转移方程(画状态转移表);考虑初始化条件;考虑输出;考虑对时间,空间复杂度的优化(较难)按上述步骤进行详细叙述:思考状态状态的定义,先试着将题目所求的设置为状态;然后思考状态是如何转移的,如果状态转移方程不易得到,尝试修改定义,目的依然是为了方面得到状态转移方程。思考状态转移方程思考初始化思考输出对于Q1:给定一个字符串 s,找到 s 中最长的回原创 2020-08-22 15:32:11 · 122 阅读 · 0 评论 -
LeetCode分类01:分治
分治与递归的区别看到题目pow(x,n)的时候,我就想到了层层递归。在测试用例的时候通过了,但是提交完了之后是这样的,如下图:于是,我就查了查递归属不属于分治,两者之间的区别。一篇博客我个人认为说的还算比较清楚:分治与递归间的关系分治与递归之间没有关系,递归可以改成一个循环,再用分治法求解。你可以想象,如果我让一万个1相加:采用循环,直接循环加一万次采用递归,递归循环一万次采用分治,不停的划分(这里划分既可以使用递归也可以使用循环),两两相加。1. 实现 pow(x, n) ,即计算 x 的原创 2020-08-19 16:00:51 · 126 阅读 · 0 评论