算法
文章平均质量分 89
宅猫coding
但行好事,莫问前程。
展开
-
动态规划入门(一):股票买卖系列问题
1 本文内容动态规划专题,通过股票买卖问题学习一维、二维的动态规划算法以及滚动数组的空间优化。leetcode 121. 买卖股票的最佳时机【easy】leetcode 122. 买卖股票的最佳时机 II【medium】leetcode 123. 买卖股票的最佳时机 III【hard】leetcode 188. 买卖股票的最佳时机 IV【hard】leetcode 309. 最佳买卖股票时机含冷冻期【medium】leetcode 714. 买卖股票的最佳时机含手续费【medium】2原创 2022-01-08 22:17:11 · 630 阅读 · 0 评论 -
二分查找,数组有序不是必要条件
1. 二分查找法介绍1.1 二分查找法概念先来一段维基百科概念。“二分查找算法,也称折半搜索算法,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。”简单来说,就是在序列中找到一个分割点,使得我们需要找的答案一定在某一边的子序列而不在原创 2021-02-01 17:35:26 · 4485 阅读 · 3 评论 -
双指针法---将序列双层遍历问题优化为单层
1. 双指针算法介绍1.1 什么是双指针法狭义上的双指针法是指利用两个指针去遍历序列(通常为数组或字符串),一个放首,一个放尾,同时向中间遍历,直到两个指针碰撞,完成遍历。 0 1 2 3 4 5 6 i --> <-- j[x x x x x x x] i j [i = 0, j = 6] i j [i = 1, j = 6] i j原创 2021-01-31 23:23:53 · 506 阅读 · 0 评论 -
一套模版搞定滑动窗口算法
1. 滑动窗口算法探究1.1 一“图”搞懂滑动窗口算法 [a, b, c, d, e, f, g, ...] lr [初始化窗口, r++] l r [维护窗口数据信息,窗口数据满足某个条件,r++] l r [维护窗口数据信息,窗口数据满足某个条件,r++] l r [维护窗口原创 2021-01-24 22:56:28 · 269 阅读 · 0 评论 -
排序算法合集及其应用举例
1. 排序算法一表总览排序算法最好时间复杂度最坏时间复杂度平均时间复杂的空间复杂度排序方式稳定性快速排序O(nlogn)O(n\log n)O(nlogn)O(n2)O(n^2)O(n2)O(nlogn)O(n\log n)O(nlogn)O(logn)O(\log n)O(logn)交换不稳定计数排序O(k+n)O(k + n)O(k+n)O(k+n)O(k + n)O(k+n)O(k+n)O(k + n)O(k+n)O(k+n)O(k +原创 2021-01-24 15:40:41 · 1349 阅读 · 4 评论 -
快速排序的“四种”写法
1. 序言:鲁迅先生笔下孔乙己的茴香豆四种写法的故事让大家常引得大家哄堂大笑,诚然我们不需要掌握茴香豆的四种写法,也无需掌握hello world的各种写法,但作为一个技术人员,还是需要懂得一题多解甚至一解多样,锤炼技术才是我们端好这碗饭的不二法门。快速排序是一种最为常用的排序方法,其主要思想“分治”更是一种必须掌握的关键算法。快速排序代码简单,但其边界处理和关键字处理是一项比较麻烦的内容,今天来梳理一下快速排序的多种写法,以便于各位找到一种最容易理解和接受的写法。2. 四种写法2.1 先移后判换两原创 2021-01-16 17:54:10 · 1866 阅读 · 0 评论 -
数据结构之图:最小生成树算法详解与Java实现(Kruskal算法与Prim算法)
核心思想+图解+代码的形式讲解最小生成树的经典算法:Kruskal算法(克鲁斯卡尔算法)和Prim算法(普里姆算法)原创 2019-12-13 20:52:46 · 376 阅读 · 0 评论 -
数据结构之图:深度优先与广度优先搜索算法Java实现
一、图的表示1.图的两种表示1.1 邻接表对于图G=(V,E)G=(V,E)G=(V,E)来说,邻接表表示由一个包含∣V∣|V|∣V∣条链表的数组AAA构成,对于每一个结点u∈Vu\in Vu∈V,邻接链表A[u]A[u]A[u]包含所有与结点uuu之间有边相连的结点。如下图所示:如上图,图GGG是一个无向图,则对于边(u,v)(u,v)(u,v)来说,结点vvv将出现在链表A[u]A...原创 2019-11-10 17:56:12 · 407 阅读 · 0 评论 -
数据结构之图:单源最短路径算法详解与Java实现(Dijkstra算法与Bellman-Ford算法)
以通俗易懂的方式(讨论+图解+代码)的形式叙述有向图最经典的最短路径算法:Dijkstra算法和Bellman-Ford算法(另外有SPFA算法)原创 2020-01-03 16:01:55 · 440 阅读 · 0 评论