剑指offer(练习)
她说巷尾的樱花开了
这个作者很懒,什么都没留下…
展开
-
剑指offer-----面试题4(替换空格)
题目:请实现一个函数,把字符串中的每个空格替换成"%20",例如输入"We are happy",输出"We%20are%20happy";分析:首先计算出字符串中总共有多少空格,而后创建一个原先字符串长度加2倍空格的字符数组,通过从右向左的方式遍历原先字符串,遇到空格则替换成%20即可;代码:public class ReplaceSpace { public String r原创 2016-04-18 15:59:05 · 1443 阅读 · 0 评论 -
剑指offer-----面试题29(数组中出现次数超过一半的数字)
实现思路:首先如果数组中存在出现次数超过一半的数字的话,那么这个数字肯定会位于数组排序之后中间元素的右边,但是对数组排序的话,时间复杂度是O(nlogn),这道题并没有非要求我们对数组进行排序,我们只需要找到中间那个元素就可以了,具体实现方法可以参照快速排序寻找主元位置的思路,因为快速排序找到主元位置真正位置之后,主元位置左边的值全部都小于主元的值,主元位置右边的值全部都大于主元的值,如果主元位置原创 2016-08-01 21:32:34 · 1792 阅读 · 0 评论 -
剑指offer-----面试题30(最小的k个数)
实现思路: 实现思路类似于上一题的求解数组中出现次数超过一半的数字,这道题同样也并没有要求我们将最小的k个数按顺序输出来,因此我们可以借助于快速排序寻找主元的位置的方法来实现,因为主元位置的左边都是小于主元的,主元位置的右边都是大于主元的,我们只需要不断的调用查找主元位置的方法直到主元位于k位置就可以了,当然没进行一次partition方法,主元本身也是在变化的,这时候主元位置左原创 2016-08-01 22:26:05 · 1818 阅读 · 0 评论