
剑指offer
文章平均质量分 66
_Luffy
https://github.com/JianmingXia
展开
-
从尾到头打印链表--《剑指offer》
题目:很简单,就是题目,将链表从尾到头打印出来。 可能我们首先想到的是将链表进行遍历,将之前的访问的数据进行保存,最后进行反向输出,可是保存数据的空间是个问题;或者是我们将整个链表进行反向操作,将整个链表进行逆置,可是我们只是进行打印操作而已,改变链表不合适吧... 其实这时候应该想到了,用栈:既然是逆置,和栈的功能不就不谋而合吗,后进先出,进行反向打印。原创 2014-05-18 17:27:19 · 1414 阅读 · 0 评论 -
替换空格--《剑指offer》
如题所示,题目很简单,替换空格,将字符串中的空格替换为%20; 即"we are happy”替换成“we%20are%20happy”; 如果每当我们遇到一个空格就将字符串向后平移两位,这样复杂度就是O(n2)了,这样的方法是不可取的,按照作者的来说,offer已不足拿到了; 而当我们反向从字符串末尾开始遍历,复杂度仅为O(n),当然前提的是该字符串有足够空间,否则替换会失败。 了解到思想之后程序也就比较简单了,发现自己的与作者的写的也比较类似,就此贴上了...原创 2014-05-18 13:54:04 · 1072 阅读 · 0 评论 -
“举一反三”合并数组--《剑指offer》
与上篇思想一样,或者说是替换数字的另一种版本吧,题目如下: 有两个已经排好的数组A1和A2,A1的末尾有足够的空间来容纳A2,我们将A2数组插入到A1中,继续保持已经排序; 这样看来就和替换空格相似了,如果我们在A1数组从头到尾复制数字,这样导致A1数组后面的数一直不断往后移动,复杂度一样是O(n2),所以,我们来举一反三:原创 2014-05-18 15:26:46 · 954 阅读 · 0 评论 -
面试题33:把数组排成最小的数--《剑指offer》
问题:输入一个正整数数组,把数组里面的所有数字连接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3, 32, 321},则打印这三个数字能排成的最小数字321323。 这题如果按照一般的全排列,n个数字是n!个排列,实在是行不通... 这时我们需要一个排序规则:原创 2014-06-04 20:34:40 · 1205 阅读 · 2 评论