
Algorithms
CCCCCCCYYY_
不会翻身的咸鱼一条
展开
-
【LeetCode】1641. Count Sorted Vowel Strings(动态规划)
【LeetCode】1641. Count Sorted Vowel Strings(动态规划)Given an integer n, return the number of strings of length n that consist only of vowels (a, e, i, o, u) and are lexicographically sorted.A string s is lexicographically sorted if for all valid i, s[i] is t原创 2021-06-30 18:19:13 · 323 阅读 · 0 评论 -
【LeetCode】739.Even Odd Tree (BFS宽度优先搜索)
【LeetCode】739.Even Odd Tree (BFS宽度优先搜索)A binary tree is named Even-Odd if it meets the following conditions:The root of the binary tree is at level index 0, its children are at level index 1, their children are at level index 2, etc.For every even-index原创 2021-02-21 18:19:26 · 228 阅读 · 0 评论 -
【LeetCode】739. Daily Temperatures 栈的使用
【LeetCode】739. Daily Temperatures 栈的使用Given a list of daily temperatures T, return a list such that, for each day in the input, tells you how many days you would have to wait until a warmer temperature. If there is no future day for which this is possible原创 2020-12-23 17:37:08 · 130 阅读 · 0 评论 -
算法学习笔记:宽度优先搜索(BFS)
算法学习笔记:宽度优先搜索(BFS)宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。广度优先...原创 2019-05-12 18:43:37 · 2992 阅读 · 0 评论 -
算法学习笔记:深度优先搜索(DFS)
算法学习笔记:深度优先搜索(DFS)一、深度优先搜索深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,英文缩写为DFS即Depth First Search。深度优先搜索是图论中的经典算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。一般用栈数据结构来辅助实现DFS算法。其过程简要来说是对每一个可能的分支路径深...转载 2019-05-11 18:34:03 · 259 阅读 · 0 评论 -
Leetcode学习笔记:#938. Range Sum of BST
Leetcode学习笔记:#938. Range Sum of BSTGiven the root node of a binary search tree, return the sum of values of all nodes with value between L and R (inclusive).The binary search tree is guaranteed to h...原创 2019-05-06 17:16:23 · 121 阅读 · 0 评论 -
Leetcode学习笔记:#771 Jewels and Stones
Leetcode学习笔记:#771 Jewels and StonesYou’re given strings J representing the types of stones that are jewels, and S representing the stones you have. Each character in S is a type of stone you have. ...原创 2019-05-06 17:01:46 · 92 阅读 · 0 评论 -
基础排序算法比较学习笔记
数据结构中各种排序算法比较1 快速排序(QuickSort)快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。(1) 如果不多于1个数据,直接返回。(2) 一般选择序列最左边的值作为支点数据。(3) 将序列分成2部分,一部分都大于支点数据,另外一部分都小于支点数据。(4) 对两边利用递归排序数列。快速排序比大部分排...原创 2019-05-02 18:14:37 · 187 阅读 · 0 评论 -
基础排序算法六:归并排序
基础排序算法六:归并排序归并排序介绍将两个的有序数列合并成一个有序数列,我们称之为"归并"。归并排序(Merge Sort)就是利用归并思想对数列进行排序。根据具体的实现,归并排序包括"从上往下"和"从下往上"2种方式。从下往上的归并排序:将待排序的数列分成若干个长度为1的子数列,然后将这些数列两两合并;得到若干个长度为2的有序数列,再将这些数列两两合并;得到若干个长度为4的有序数列,...原创 2019-05-02 18:11:53 · 195 阅读 · 0 评论 -
基础排序算法五:选择排序
基础排序算法五:选择排序选择排序介绍选择排序(Selection sort)是一种简单直观的排序算法。它的基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的时间复杂度和稳定性选择排序时间复杂度选择排序的时间复杂度是O(N2...原创 2019-05-02 18:02:20 · 202 阅读 · 0 评论 -
基础排序算法四:希尔排序
基础排序算法四:希尔排序希尔排序介绍希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所有距离为gap的倍数的记录放在同一个组中;然后,对各组内的元...原创 2019-05-02 17:53:32 · 118 阅读 · 0 评论 -
基础排序算法三:插入排序
基础排序算法三:插入排序直接插入排序介绍直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。直接插入排序的时间复杂度和稳定性直接插入排序时间复杂...转载 2019-05-02 17:50:12 · 148 阅读 · 0 评论 -
基础排序算法二:快速排序
基础排序算法二:快速排序快速排序介绍快速排序(Quick Sort)使用分治法策略。基本思想:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序流程:(1) 从数列中挑出一个基准值。(2) 将所有比基准值小的摆放...转载 2019-05-02 17:32:28 · 121 阅读 · 0 评论 -
基础排序算法一:冒泡排序
基础排序算法一:冒泡排序冒泡排序介绍冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止冒泡...原创 2019-05-02 15:23:36 · 203 阅读 · 0 评论