CTCI系列
Lonie233
我是个菜!!!!
展开
-
1.2字符串翻转
题目:翻转一个字符串设置一个空变量进行交换,然后返回字符串 代码如下:public static String swap0(String s) { char[] str = s.toCharArray(); char temp ; for (int i = 0; i <str.length/2 ; i++) { temp = str[i] ; str[i] = str转载 2015-09-07 10:09:56 · 276 阅读 · 0 评论 -
2.1 从链表中移除重复结点
题目 :从一个未排序的链表中移除重复的项解法一: 最简单暴力的双层循环(O(n²)),设置两个节点,一个记录当前节点,另外一个记录当前节点的前一节点,遍历链表,设定当前节点,然后在当前节点下,再次遍历链表,判断是否重复,重复就修改前一节点连到当前节点的下一节点解法二:利用hashtable 存储节点(O(n)),同样是记录两个节点,一个为前一节点,一个为当前节点,但是只需要一次遍历,一边遍历,一边判原创 2015-09-08 11:07:59 · 351 阅读 · 0 评论 -
1.3 去除字符串中重复的字符
题目 设计算法并写出代码移除字符串中重复的字符,不能使用额外的缓存空间。注意: 可以使用额外的一个或两个变量,但不允许额外再开一个数组拷贝根据1.1的修改判断条件删选不重复字符,调整到数组前部,然后截取代码如下 public static char[] deleteRepeatChar(char[] s) { int checker = 0;//检测标志原创 2015-09-07 11:20:48 · 470 阅读 · 0 评论 -
1.8 利用已知函数判断字符串是否为另一字符串的子串
题目:假设你有一个isSubstring函数,可以检测一个字符串是否是另一个字符串的子串。 给出字符串s1和s2,只使用一次isSubstring就能判断s2是否是s1的旋转字符串, 请写出代码。旋转字符串:”waterbottle”是”erbottlewat”的旋转字符串。解释:这个地方需要仔细观察,理解一下什么叫旋转字符串,这里的旋转是,算了我也解释不清楚,描述一下就明白了,比如他这个water转载 2015-09-08 10:25:48 · 730 阅读 · 0 评论 -
1.1判断一个字符串中的字符是否唯一
1.1判断一个字符串中的字符是否唯一字符串由26个字母组成,判断是否有重复字符解法一声明一个26位的数组,初始化为0,然后遍历字符串,首次出现修改对应数组为1,检测到对应数组值为1的时候,返回false。成功遍历完毕,返回true。代码如下:`public static boolean isUniqueChar2(String str) { int a[] ; a = new int[26]转载 2015-09-06 11:09:39 · 1556 阅读 · 0 评论 -
2.2 实现一个算法从一个单链表中返回倒数第n个元素
解法,我也是从这里学的,博客只是说一下自己的理解挺有意思的,返回的是倒数的元素,假设是正数的,我们可以从头数,但是倒数的,会不会想把这个单链表翻转一下呢??还是先遍历链表数好总数然后再数(总数-n个)? 其实说白了就是能倒着数n个就行了,有没有想到栈?先进后出?全进了之后开始数N个?进一步的,递归!而且递归能够节省空间啊。解法二:设置两个指针,控制他们的距离为N,然后先后遍历链表,等前指针遍历到末原创 2015-09-08 11:54:47 · 452 阅读 · 0 评论