Leetcode
文章平均质量分 94
JamesBonnie
这个作者很懒,什么都没留下…
展开
-
排序算法
文章目录一、常用排序算法1. 冒泡排序(Bubble Sort)算法步骤代码算法分析2. 选择排序(Selection Sort)算法步骤代码算法分析3. 插入排序(Insertion Sort)算法步骤代码算法分析4. 归并排序(Merge Sort)4.1 自上往下递归写法算法步骤代码算法分析4.2 自下往上迭代写法代码算法分析5. 快速排序(Quick Sort)算法步骤代码算法分析6. 堆排序(Heap Sort)完全二叉树与堆算法思想算法步骤7. 桶排序8. 基数排序9. 希尔排序、计数排序二、快原创 2021-03-17 11:03:04 · 184 阅读 · 1 评论 -
二分查找
算法解释二分查找也常被称为二分法或者折半查找,每次查找时通过将待查找区间分成两部分并只取一部分继续查找,将查找的复杂度大大减少。对于一个长度为 O(n) 的数组,二分查找的时间复杂度为 O(log n)。二分查找时区间的左右端取开区间还是闭区间在绝大多数时候都可以有些初学者会容易搞不清楚如何定义区间开闭性。这里我提供两个小诀窍:第一是尝试熟练使用一种写法,比如左闭右开(满足 C++、Python 等语言的习惯)或左闭右闭(便于处理边界条件),尽量只保持这一种写法;第二是在刷题时思考如果原创 2021-02-02 15:41:50 · 5487 阅读 · 0 评论 -
双指针
双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针。若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的 区域即为当前的窗口),经常用于区间搜索。若两个指针指向同一数组,但是遍历方向相反,则可以用来进行搜索,待搜索的数组往往是排好序的。一、两数求和(双指针相向-> <-移动)两数之和 II - 输入有序数组给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标.原创 2021-01-28 20:23:05 · 211 阅读 · 0 评论 -
贪心算法
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。贪心策略适用的前提是**:局部最优策略能导致产生全局最优解**。相关笔记:贪心算法及LeetCode中相关问题一、分配问题分配饼干有一群孩子和一堆饼干,每个孩子有一个饥饿度,每个饼干都有一个原创 2021-01-26 10:19:44 · 213 阅读 · 0 评论