Leetcode
leetcode整理
LittlePanger
这个作者很懒,什么都没留下…
展开
-
LeetCode-二分查找
二分查找二分查找也称为折半查找,每次都能将查找区间减半,这种折半特性的算法时间复杂度为 O(logN)。中值计算有两种计算中值 m 的方式:m = (l + h) // 2m = l + (h - l) // 2l + h 可能出现加法溢出,也就是说加法的结果大于整型能够表示的范围。但是 l 和 h 都为正数,因此 h - l 不会出现加法溢出问题。所以,最好使用第二种计算法方法。...原创 2020-04-11 13:02:57 · 190 阅读 · 0 评论 -
LeetCode-贪心算法
贪心算法保证每次操作都是局部最优的,并且最后得到的结果是全局最优的。455. 分发饼干455. 分发饼干题目描述:每个孩子都有一个满足度,每个饼干都有一个大小,只有饼干的大小大于等于一个孩子的满足度,该孩子才会获得满足。求解最多可以获得满足的孩子数量。示例:输入: [1,2,3], [1,1]输出: 1解释: 你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。虽然你...原创 2020-04-11 13:01:59 · 111 阅读 · 0 评论 -
LeetCode-双指针
双指针双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。167.两数之和 II - 输入有序数组两数之和 II - 输入有序数组示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2 。解法:使用双指针,一个指针指向值较小...原创 2020-04-11 13:01:25 · 101 阅读 · 0 评论 -
时间复杂度与空间复杂度
1 前言算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。空间维度:是指执行当前算法需要占用多少...原创 2020-04-11 13:00:59 · 256 阅读 · 0 评论