码迷,mamicode.com
首页 >  
搜索关键字:运维 思想 做人 做事    ( 39071个结果
替换空格--《剑指offer》
如题所示,题目很简单,替换空格,将字符串中的空格替换为%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
软考之路(七)---设计模式总结
设计模式这门课程我们之前都学过,但通过这次考试准备发现学习上好多问题,以前理解的很不到位,紧紧是浅显的理解,每种模式都了解些,但每种模式的思想了解的不深刻,设计模式这门课程缺乏整体的把控,以至于模式和模式之间的区别和联系有些模糊,通过这次的复习,对设计模式的概念性的理解又深刻了很多,学习知识需要靠的是反复,知识间不断的联系,以考促学,加油!...
分类:其他好文   时间:2014-05-22 11:43:24    阅读次数:212
使用Roboguice依赖注入规划Android项目
关于依赖注入  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】从上向下打印二叉树
剑指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(构造+贪心)
题目连接:Codeforces 432E Square Tiling 题目大意:给出一个n?m的矩阵,要求对该矩阵进行上色,用大写字母,但是每次上色的区域必须是正方形,不求相邻的上色区域不能有相同的颜色,求字典序最小的方案(字典序比较,从左至右,从上到下) 解题思路:用贪心的思想去构造矩阵,因为字典序的优先级为左至右,以及上到下,所以我们每次对于一个未上色点x,y,考虑最少要放到的长度...
分类:其他好文   时间:2014-05-22 07:53:17    阅读次数:280
排序算法之归并排序
一、算法思想描述      归并排序:先递归分解序列,然后在合并有序序列。其过程描述如下:每次输出A、B这两个有序序列中的最小的一个。     二、算法分析     时间复杂度:最差、平均、最好的时间复杂度都是O(nlgn);     空间复杂度:O(n)     稳定性: 稳定三、算法实现   /* * mergesort.cpp * * Created on: 2014年5月18日...
分类:其他好文   时间:2014-05-22 07:29:44    阅读次数:250
排序算法之快速排序
一、算法思想描述1)令i = L,j = R,将基准数挖出形成第一个坑(基准数可以选择第一个位置上的数作为基准数,也可以选择其他位置上的数作为基准数)。2)j--   。从后往前扫,找到第一个比基准数小的数。并将其“挖出”,填到上一个形成的坑中arr[i]3)i++ 。 从前往后扫,找到第一个比基准数大的数。并将其“挖出”,填到上一个形成的坑中arr[j]4)不断地重复2)、3)直到i == j,...
分类:其他好文   时间:2014-05-22 06:48:32    阅读次数:208
“举一反三”合并数组--《剑指offer》
与上篇思想一样,或者说是替换数字的另一种版本吧,题目如下: 有两个已经排好的数组A1和A2,A1的末尾有足够的空间来容纳A2,我们将A2数组插入到A1中,继续保持已经排序; 这样看来就和替换空格相似了,如果我们在A1数组从头到尾复制数字,这样导致A1数组后面的数一直不断往后移动,复杂度一样是O(n2),所以,我们来举一反三:...
分类:其他好文   时间:2014-05-22 06:14:10    阅读次数:241
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!