
算法
流左沙
越努力,越幸运
展开
-
最长上升子序列nlogn算法
最长递增子序列,LongestIncreasing Subsequence 下面我们简记为 LIS。排序+LCS算法 以及DP算法就忽略了,这两个太容易理解了。假设存在一个序列d[1..9]= 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5。n下面一步一步试着找出它。我们定义一个序列B,然后令 i = 1to 9 逐个考察这个序列。此外,我们用一个变量Len来转载 2017-05-23 16:03:45 · 259 阅读 · 0 评论 -
卡特兰数
简介卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名,其前几项为 : 1, 1, 2, 5,14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845,35357670转载 2017-05-21 11:21:26 · 285 阅读 · 0 评论 -
如何判断一个数是否为4的幂次方?若是,并判断出来是多少次方?
作者: 字体:[增加 减小] 类型:转载 时间:2013-05-24 我要评论本篇文章是对如何判断一个数是否为4的幂次方?若是,并判断出来是多少次方的实现方法,进行了详细的分析介绍,需要的朋友参考下将4的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1(1在奇数位置),并且1后面跟了偶数个0; 因此问题可以转化为判断1后面是否跟了偶数个0就可以了转载 2017-07-30 16:20:46 · 1347 阅读 · 0 评论 -
深入第K大数问题以及算法概要的详解
作者: 字体:[增加 减小] 类型:转载 时间:2013-05-24 我要评论本篇文章是对第K大数问题以及算法概要进行了详细的分析介绍,需要的朋友参考下解法1: 我们可以对这个乱序数组按照从大到小先行排序,然后取出前k大,总的时间复杂度为O(n*logn + k)。解法2: 利用选择排序或交互排序,K次选择后即可得到第k大的数。总的时间复杂度为O(n*k转载 2017-08-03 22:35:54 · 439 阅读 · 0 评论 -
leetcode周赛python题解
现在想练习算法有多种方式,而leetcode是其中一种在这里推荐一下,https://leetcode-cn.com/problemset/all/点击打开链接这是中文版的地址。最近参与leetcode周赛,发现排名靠前的都是用的JAVA、C++很少见用python的,毕竟用python慢还容易超时,不过我倒是坚持用python3来做这里附上题解(从第83周开始的)https://github.c...原创 2018-06-14 09:59:18 · 1148 阅读 · 0 评论 -
LeetCode 第90场周赛
注:本文仅提供解题思路,代码为python移步点击打开链接https://github.com/calssion/Leetcode-Weekly-Contest856. 括号的分数给定一个平衡括号字符串 S,按下述规则计算该字符串的分数:() 得 1 分。AB 得 A + B 分,其中 A 和 B 是平衡括号字符串。(A) 得 2 * A 分,其中 A 是平衡括号字符串。示例 1:输入: "()"...原创 2018-06-24 15:34:00 · 771 阅读 · 0 评论 -
LeetCode 第91场周赛
注:本文仅提供解题思路,代码为python移步点击打开链接https://github.com/calssion/Leetcode-Weekly-Contest860. 柠檬水找零在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是...原创 2018-07-02 22:19:51 · 489 阅读 · 0 评论