剑指offer
穷理何须格物
你就是医我的药
展开
-
数组中出现次数超过一半的数字
问题:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。分析:解题方法有很多,我们最容易想到的方法就是将数组中的数做个统计,计算每个数出现的次数,看看其中有没有超过数组中出现次数超过一半的数字。我们再深入分析一下,如果存在这样的一个数字原创 2016-08-15 15:08:57 · 1257 阅读 · 0 评论 -
特殊的求和:1+2+3+...+n
问题:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。分析:1+2+3+...+n是一个等差数列,用等差数列求和公式,n*(a1+an)/2,但题目中要求不能用乘除,此方法不可行;遍历?题目中不让用循环,但是我们可以用递归来代替循环,写一个函数,每次传参数为n-1,当n为1时递归终止。但是题目中不让用原创 2016-09-11 20:15:56 · 3513 阅读 · 0 评论