
面试题
lisendong0126
这个作者很懒,什么都没留下…
展开
-
#面试题#前伸后缩法
题目:给定长度为n的整数数列:a0,a1,..,an-1,以及整数S。这个数列会有连续的子序列的整数总和大于S的,求这些数列中,最小的长度。 如果数列中有正有负,则直接用 O(n^2)的算法。 现在讨论 数列中全为非负数的情况:令i, j 都指向 数列的第一个元素,之后循环执行以下步骤:1. j++ 直到 a[i] + .... + a[j] > S;2. i++原创 2013-09-07 11:22:45 · 911 阅读 · 0 评论 -
#面试题#三进制异或
#面试题#数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法,找到x。分析:假设该题目修改为:除了某一个数字x之外,其他数字都出现了两次,而x出现了一次。 则可以把所有数字直接求异或,最终的结果就是x。这个很好理解。而该题目 除了x外,其他数字都出现了三次。则可以想到三进制异或运算。其实异或运算的本质就是 求和 % base。 比如 1 ^原创 2013-09-08 19:29:21 · 2662 阅读 · 0 评论 -
#面试题#最长等差数列
#面试题#给定未排序的数组,请给出方法找到最长的等差数列。分析: 想以O(n^2)的复杂度计算出任意两个位置的数字差。用hash数组存储:比如1 3 2 4 5 的 hash统计结果为: (注意都是位置)差为1: (1,3) (2, 4) (4, 5)差为2: (1,2) (3, 4) (2, 5)差为3: (1, 4) (2, 5)差为4: (1, 5原创 2013-09-08 23:37:25 · 873 阅读 · 0 评论 -
sqrt原理(原标题《sqrt引发的血案》)
好吧,我承认我标题党了,不过既然你来了,就认真看下去吧,保证你有收获。我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢?虽然有可能你平时没有想过这个问题,不过正所谓是“临阵磨枪,不快也光”,你“眉头一皱,计上心来”,这个不是太简单了嘛,用二分的方法转载 2013-11-12 12:40:37 · 1953 阅读 · 2 评论