2014年11月8日

和为n连续正数序列 【微软面试100题 第五十一题】

摘要: 题目要求: 输入一个正数n,输出所有和为n连续正数序列(至少两个)。 例如输入15,由于1+2+3+4+5 = 4+5+6 = 7+8 = 15.所以输出3个连续序列1~5,4~6,7~8. 参考资料:剑指offer第41题。题目分析: 由题意可知:从1~n中找连续的整数序列。 可以用两个... 阅读全文

posted @ 2014-11-08 22:37 tractorman 阅读(302) 评论(0) 推荐(0)

一道看上去很吓人的算法题 【微软面试去100题 第四十九题】

摘要: 题目要求: 如何对n个数进行排序,要求时间复杂度O(N).空间复杂度为O(1).题目分析: 严格的说,这道题给出的条件不全。如果这n个数字的大小跨度很大(1~无穷大),则肯定达不到要求。 如果n个数字的大小在一定范围内(如0~65535),则可以用hash表的方法。定义为int hash[65... 阅读全文

posted @ 2014-11-08 22:20 tractorman 阅读(234) 评论(0) 推荐(0)

在左移的递减数组中查找某数 【微软面试100题 第四十八题】

摘要: 题目要求: 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1,}左移两位形成的,在这种数组中查找某个数。题目分析: 方法1 逐个查找,遍历一遍数组,时间复杂度O(N). 方法2 二分查找,时间复杂度O(logN).具体分析见下图:代码实现:#... 阅读全文

posted @ 2014-11-08 21:45 tractorman 阅读(254) 评论(0) 推荐(0)

导航