
算法
文章平均质量分 93
sun123704
这个作者很懒,什么都没留下…
展开
-
leetcode136——只出现一次的数字
链接:https://leetcode.com/problems/single-number/description/给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 :输入: [2,2,1]输出: 1分析:题目要求线性时间复杂度,即O(n)。能立即想到的方...原创 2020-03-17 11:53:32 · 157 阅读 · 0 评论 -
“最大连续子序列和”、“最大递增子序列”、“最大公共子序列”、“最长公共子串”问题总结【持续更新ing】
一、最大连续子序列和(最大子序列)最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。思路:只要前i项的和还没有小于0那么子序列就一直向后扩展,否则丢弃之前的子序列开始新的子序列,同时我们要记下各个子序列的和,最后找到和最大的子序列。...原创 2018-08-09 22:08:50 · 1937 阅读 · 0 评论 -
广度优先搜索与最短路径问题
《算法图解》上看到的分析思路,把广度优先搜索直接与最短路径问题放在一起,mark一下1、BFS解决最短路径问题假设要从双子峰前往金门大桥。你想乘公交车前往,并希望换乘最少。可乘坐的公交车如下:为找出换乘最少的乘车路线,你将使用什么样的算法? 一步就能到达金门大桥吗?下面突出了所有一步就能到达的地方:金门大桥未突出,因此一步无法到达那里。两步能吗?金门大桥也未...原创 2020-03-12 11:46:56 · 2538 阅读 · 0 评论 -
如何理解快速排序的时间复杂度是O(nlogn)
选择排序、冒泡排序等算法的时间复杂度都比较好理解,但不是很清楚快速排序的时间复杂度为什么是O(nlogn)。从《算法图解》中看到的思路,很赞,解决了一直以来的疑惑。引用自《算法图解》:快速排序的情况比较棘手,在最糟情况下,其运行时间为O(n2)。。在平均情况下,快速排序的运行时间为O(nlogn)。1、平均情况与最糟情况快速排序的性能高度依赖于你选择的基准值。最糟情况假设你总是将第一...原创 2020-03-06 11:19:19 · 29094 阅读 · 3 评论