如题所示,题目很简单,替换空格,将字符串中的空格替换为%20;
即"we are happy”替换成“we%20are%20happy”;
如果每当我们遇到一个空格就将字符串向后平移两位,这样复杂度就是O(n2)了,这样的方法是不可取的,按照作者的来说,offer已不足拿到了;
而当我们反向从字符串末尾开始遍历,复杂度仅为O(n),当然前提的是该字符串有足够空间,否则替换会失败。
了解到思想之后程序也就比较简单了,发现自己的与作者的写的也比较类似,就此贴上了......
分类:
其他好文 时间:
2014-05-22 12:25:54
阅读次数:
201
素数表在算法中经常会用到,所以掌握一种高效求解素数表的算法是很有必要的。
这里介绍一种算法:筛法。筛法的时间复杂度我不太清楚,但我知道是接近于 O(n) 的,比一般的求解素数的算法效率要高很多,其基本思想如下:
1、要得到 2 — n 之间的所有素数,先记录下 2 — n 之间的所有整数,用集合表示 A = { 2 , 3 , 4 , 5 , 6 …… n }
2、创建一张素数表 P...
分类:
其他好文 时间:
2014-05-22 12:21:52
阅读次数:
201
关于依赖注入
Dependency Injection( 依赖注入)可以很好的帮助我们分离模块,降低耦合、提高可测试性。(PS:Roboguice 只是一个工具,依赖注入更多的是一种思想)
通常博主开发项目时喜欢以Activity 、Service 等组件作为顶级层入口,辅以各类接口作为业务服务。Activity 主要负责维护界面相关的东西,及提供功能所需要的上下文环境,引入功能实...
分类:
移动开发 时间:
2014-05-22 10:30:30
阅读次数:
535
一、算法思想描述 1、设置一定的步长 2、将整个序列根绝步长分成若干个子序列。对每个子序列执行直接插入排序 3、重复步骤2,直到步长为1(包含1)二、算法分析 希尔排序,也叫缩小增量排序,是插入排序的一种,他对插入排序进行了一定的优化。 时间复杂度:一般认为,在某些序列中可以达到O(n^1.3) 空间复杂度:O(1) ...
分类:
其他好文 时间:
2014-05-22 08:49:36
阅读次数:
213
剑指offer上的第23题,实际上就是考察二叉树的层序遍历,具体思想可以参考这里。
题目描述:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行一个整数n(1<=n<=1000, :n代表将要输入的二叉树元素的个数(节点从1开始编号)。接下来一行有n个数字,代表第i个二叉树节点的元素的值。接下来有n行,每行有一个字母Ci。
Ci=’d’表示第i个节点有两子孩子,紧接着是左孩子编号和右孩子编号。
Ci=’l’表示第i个...
分类:
其他好文 时间:
2014-05-22 08:29:03
阅读次数:
306
题目连接:Codeforces 432E Square Tiling
题目大意:给出一个n?m的矩阵,要求对该矩阵进行上色,用大写字母,但是每次上色的区域必须是正方形,不求相邻的上色区域不能有相同的颜色,求字典序最小的方案(字典序比较,从左至右,从上到下)
解题思路:用贪心的思想去构造矩阵,因为字典序的优先级为左至右,以及上到下,所以我们每次对于一个未上色点x,y,考虑最少要放到的长度...
分类:
其他好文 时间:
2014-05-22 07:53:17
阅读次数:
280
连通区标记是最基本的图像处理算法之一。该算法中,按从左至右、从上至下的顺序,对整幅图像进行扫描,通过比较每个前景像素的邻域进行连通区标记,并创建等效标记列表。最后,合并等效标记列表,并再次扫描图像以更新标记。算法的优点的是通俗易懂,缺点是需要两次扫描图像,效率不高。区域生长法利用区域生长的思想,一次生长过程可以标记一整个连通区,只需对图像进行一次扫描就能标记出所有连通区。...
分类:
其他好文 时间:
2014-05-22 07:32:21
阅读次数:
258
与上篇思想一样,或者说是替换数字的另一种版本吧,题目如下:
有两个已经排好的数组A1和A2,A1的末尾有足够的空间来容纳A2,我们将A2数组插入到A1中,继续保持已经排序;
这样看来就和替换空格相似了,如果我们在A1数组从头到尾复制数字,这样导致A1数组后面的数一直不断往后移动,复杂度一样是O(n2),所以,我们来举一反三:...
分类:
其他好文 时间:
2014-05-22 06:14:10
阅读次数:
241
=================插件实施与应用基本流程1,开发此程序的人提供接口(提供DLL)2,第三方开发团队(开发插件)严格按照接口,实现功能。并打包成DLL3,使用者下载第三方开发团队开发出来的插件,并把查询复制到程序相应的文件夹里=================程序开发思想1,在程序中创..
分类:
其他好文 时间:
2014-05-20 23:14:07
阅读次数:
260
贝叶斯决策理论是主观贝叶斯派归纳理论的重要组成部分。贝叶斯决策就是在不完全情报下,对部分未知的状态用主观概率估计,然后用贝叶斯公式对发生概率进行修正,最后再利用期望值和修正概率做出最优决策。贝叶斯决策理论方法是统计模型决策中的一个基本方法,其基本思想是:★..
分类:
其他好文 时间:
2014-05-20 18:19:36
阅读次数:
650