
笔试面试
wdd200866
这个作者很懒,什么都没留下…
展开
-
不用加减乘除做加法
题目要求:写一个函数,求两个整数 之和原创 2014-07-22 22:11:34 · 264 阅读 · 0 评论 -
面试题(2)连续子数组的最大和
题目:输入一个整型数组,数组中有正数也有负数,数组中一个或者连续的多个整数构成一个子数组。求所有子数组和的最大值要求时间复杂度为O(n)分析:如果用函数f(i)表示以第i个数字结尾的数组的最大和,那么我们需要求出max(f[i]),其中01,i=0 || f(i-1)2,i!=0 || f(i-1)>0 f(i) = f(i-1) + data[i]即当第i-1个数字结尾的子数原创 2014-11-27 09:50:14 · 246 阅读 · 0 评论 -
面试题(3)数字在排序数组中出现的次数
题目:统计一个数字在排序数组中出现的次数,例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在数组中出现了4次,所以输出4思路:假设K为数组中要统计的数字,我们可以可以确定第一个k在数组中出现的位置和最后一个k在数组中出现的位置,那么如何确定第一个k在数组中出现的位置呢?我们可以先使用二分查找的方法在数组中找到一个k,二分查找算法总是拿数组中间的数字和k做比较,如果中间数字原创 2014-11-29 15:25:14 · 307 阅读 · 0 评论 -
面试题(1)第一个只出现一次的字符
题目:在一个字符串中找到原创 2014-11-25 09:35:02 · 262 阅读 · 0 评论 -
面试题(4)和为S的两个数字
题目:输入一个递增序列的数组S,在数组中查找两个数使得他们的和为s,如果有多对数字的和为s,输出任意一对即可。思路:我们先在数组中选择两个数,如果他们的和等于s,这两个数即为我们所找的两个数,如果这两个数的和小于s,我们希望选择的两个数更大一点,由于数组是按照从小到大排序的,我们可以考虑选择较小的数字后面的数字,因为后面的数字较大一些,因此他们的和也会较大一点,这样我们就有可能找到两个和为s的原创 2014-11-30 21:35:16 · 244 阅读 · 0 评论 -
面试题(5)和为s的连续正数序列
题目:输入一个正数S,打印出所有和为S的连续的正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续的序列1-5、4-6、7-8分析:由于有了面试题(4)的经验,我们也考虑用两个数small和big来标示序列的最大值和最小值。首先把small初始化为1,big初始化为2,如果从small到big的和大于S,我们可以从序列中去掉较小的值原创 2014-12-02 09:11:47 · 261 阅读 · 0 评论 -
面试题(6)最小的K个数
题目:输入N个整数,找出其中最小的K个数,比如输入4,5,1,6,2,7,3,8这八个数,则最小的四个数字是:1,2,3,4解法一:O(n)的算法:只有当我们可以修改输入的数组的时候可用我们可以基于快速排序划分的方法来解决这个问题:如果基于数组的第k个数字来调整,使得比第k个数字小的元素都为与数组的左边,比第k个元素大的元素都位于数组的右边,这样调整后位于数组中左边的k个数,就是最小的k个原创 2014-12-05 21:05:04 · 258 阅读 · 0 评论 -
字符串以为包含的问题
描述:给定两个字符串s1,s2,要求判断s2是否能够被s1座循环移位得到的字符串。例如给定字符串s1=AABCD,s2=CDAB,返回true解法1:从题目中可以看出,我们可以使用最直接的方法对s1进行循环移位,再进行字符串的包含操作,从而遍历其所有的可能性。具体实现代码如下:public class RotateArray {public static void main(Str原创 2015-06-23 23:19:45 · 151 阅读 · 0 评论