C++算法
肉泡馍
这个作者很懒,什么都没留下…
展开
-
最长上升子序列的O(nlogn)解法 (转)
最近在做单调队列,发现了最长上升子序列O(nlogn)的求法也有利用单调队列的思想。 最长递增子序列问题:在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i 设dp[i]表示以i为结尾的最长递增子序列的长度,则状态转移方程为: dp[i] = max{dp[j]+1}, 1 这样简单的复杂度为O(n^2),其实还有更好的方法。转载 2016-04-27 14:54:58 · 280 阅读 · 0 评论 -
统计1到n之间的所有数字中1出现的个数
实现函数int func(unsigned n),其中n为正整数,返回从1到n(包含1和n)之间出现的1的个数,如 func(13)=6,func(9)=1。(注意:不能将整数转化为字符串) 这是网上以为兄弟的分析: 分析: 对于数n,可以把它分成三段,高位段most,当前位cur,低位段least,每一段分别为一个整数。对于一个有digit位的数,假设当前位是左数第i位,转载 2017-02-20 14:23:09 · 3799 阅读 · 0 评论