avatar
w*t
1
summer intern
4个人
第一个:一副牌,52张,如何测试一个洗牌算法是否好
如何设计一个电梯
第二个:逆时针打印一个m*n的矩阵
第三个:A!+B!+C! = ABC, A,B,C都是0-9的数,ABC是这三个digit组成的三位数,问A
B C分 别是几,如果A! + B! + C! + D! = ABCD,那么如何迅速找ABCD
第四个(boss):一个有序序列,从某个地方rotate,求在rotate的位置,比如
1 3 5 0 0 0,那么rotate的位置是4,他后来只用了4行就写出来了,很nb,被bs了~~
avatar
g*e
2
5!+4!+1!+=145
四个数的话就在1-7之间选4个,而且一定有7,有5,所以一共有C(2,5)=10种,穷举一下

A

【在 w**t 的大作中提到】
: summer intern
: 4个人
: 第一个:一副牌,52张,如何测试一个洗牌算法是否好
: 如何设计一个电梯
: 第二个:逆时针打印一个m*n的矩阵
: 第三个:A!+B!+C! = ABC, A,B,C都是0-9的数,ABC是这三个digit组成的三位数,问A
: B C分 别是几,如果A! + B! + C! + D! = ABCD,那么如何迅速找ABCD
: 第四个(boss):一个有序序列,从某个地方rotate,求在rotate的位置,比如
: 1 3 5 0 0 0,那么rotate的位置是4,他后来只用了4行就写出来了,很nb,被bs了~~

avatar
v*y
3
第四个是O(log(n)) 的解法么?四行,牛,求解
avatar
g*e
4
没说ABCD不能相同,实际上ABCD如果不同,是无解的,要再想想

一下

【在 g**e 的大作中提到】
: 5!+4!+1!+=145
: 四个数的话就在1-7之间选4个,而且一定有7,有5,所以一共有C(2,5)=10种,穷举一下
:
: A

avatar
k*7
5
1 3 5 0 0 0,为啥rotate的位置是4不是3?
如果1,2,3,4,0,0,那rotate位置按轮转之前还是之后的?
Anyway,用for循环,a[i+1]<=a[i]就return,4行刚好,O(n)时间
avatar
D*7
6
FindRotation(int* array, int start, int end)
{
int middle = (start + end)/2;
if (array[start] <= array[end])
return start;
return (array[start] > array[midlle]) ? FindRotation(array, start,
middle) : FindRotation(array, middle, end);
}
假设是升序排列,大概是这样,没有测试过。

【在 v******y 的大作中提到】
: 第四个是O(log(n)) 的解法么?四行,牛,求解
avatar
g*e
7
有重复的你这就不灵了
avatar
g*e
8
我觉得A!+B!+C!+D!=ABCD这个没有解啊,穷举了一遍也没有

【在 g**e 的大作中提到】
: 没说ABCD不能相同,实际上ABCD如果不同,是无解的,要再想想
:
: 一下

avatar
g*e
9
试试 0 0 0 0 1 0?
你这是O(n)了。我发现这个问题有重复数字的时候写对相当困难
avatar
c*m
10
四个人每人就一道题?
avatar
r*e
11
试了,没问题
不是O(n),最后两行的条件是不会同时发生的,最后一个if clause可以去掉

【在 g**e 的大作中提到】
: 试试 0 0 0 0 1 0?
: 你这是O(n)了。我发现这个问题有重复数字的时候写对相当困难

avatar
g*e
12
我给的这个例子不就是a[mid]==a[low]==a[high]么

【在 r*******e 的大作中提到】
: 试了,没问题
: 不是O(n),最后两行的条件是不会同时发生的,最后一个if clause可以去掉

avatar
a*y
13
hi, how can you get 5!+4!+1! = 145? is there any theorem can explain
this or other things?

一下

【在 g**e 的大作中提到】
: 5!+4!+1!+=145
: 四个数的话就在1-7之间选4个,而且一定有7,有5,所以一共有C(2,5)=10种,穷举一下
:
: A

avatar
r*e
14
恩,是有问题
不过你给的test case在我刚那段代码下结果碰巧是对的
0 1 0 0 0 0才会出问题,这样的情况有点麻烦

【在 g**e 的大作中提到】
: 我给的这个例子不就是a[mid]==a[low]==a[high]么
avatar
d*l
15
careercup的那本书上好像有这题,上面提到如果有重复的话,O(n)是必须的,就拿全
零然后只有一个1的情况来说,1在不同位置都是有可能的,除非把所有位置都看一遍否
则是无法确定的

【在 r*******e 的大作中提到】
: 恩,是有问题
: 不过你给的test case在我刚那段代码下结果碰巧是对的
: 0 1 0 0 0 0才会出问题,这样的情况有点麻烦

avatar
g*e
16
A!+B!+C!=ABC
考虑5!=120, 6!=720,首先不可能有6,不然720里面的7无法实现,所以只可能0-5。
另外一定有5,不然4!x3也不到100. 确定了一个就好办了,另外一定有1,因为最高位
是1.剩下的就是4了

【在 a***y 的大作中提到】
: hi, how can you get 5!+4!+1! = 145? is there any theorem can explain
: this or other things?
:
: 一下

avatar
C*Y
17
careercup上那道题是在rotated后的array中search某个数
大量duplicate的话就是O(n)的

【在 d*******l 的大作中提到】
: careercup的那本书上好像有这题,上面提到如果有重复的话,O(n)是必须的,就拿全
: 零然后只有一个1的情况来说,1在不同位置都是有可能的,除非把所有位置都看一遍否
: 则是无法确定的

avatar
d*l
18
我也编程试了下没解。。。亏我还在纸上试了半天,不知这题是怎么个意思

【在 g**e 的大作中提到】
: 我觉得A!+B!+C!+D!=ABCD这个没有解啊,穷举了一遍也没有
avatar
i*9
19
This question is a bit different with the one on careercup, careercup 上那道
题是search a key,跟这个(只要求找出去拐点,)不一样, so it is doable in O(
lgn) for repeats

【在 d*******l 的大作中提到】
: careercup的那本书上好像有这题,上面提到如果有重复的话,O(n)是必须的,就拿全
: 零然后只有一个1的情况来说,1在不同位置都是有可能的,除非把所有位置都看一遍否
: 则是无法确定的

avatar
c*y
20
Binary search works for an array with duplicate elements.
However, a modified binary search doesn't work for a rotated array with
duplicate elements (see Careercup book p181).
So how should we deal with a rotated array without duplicate elements?
Trying to use the modified binary search is good, but it is hard to remember
. We can first locate the special location, and then use the ordinary binary
search in the "right" range.
avatar
B*M
21
你咋那么聪明哪!

【在 g**e 的大作中提到】
: 我给的这个例子不就是a[mid]==a[low]==a[high]么
avatar
B*M
22
这个rotate是什么意思?没懂

A

【在 w**t 的大作中提到】
: summer intern
: 4个人
: 第一个:一副牌,52张,如何测试一个洗牌算法是否好
: 如何设计一个电梯
: 第二个:逆时针打印一个m*n的矩阵
: 第三个:A!+B!+C! = ABC, A,B,C都是0-9的数,ABC是这三个digit组成的三位数,问A
: B C分 别是几,如果A! + B! + C! + D! = ABCD,那么如何迅速找ABCD
: 第四个(boss):一个有序序列,从某个地方rotate,求在rotate的位置,比如
: 1 3 5 0 0 0,那么rotate的位置是4,他后来只用了4行就写出来了,很nb,被bs了~~

avatar
a*y
23
thanks, gate, good explanation.

【在 g**e 的大作中提到】
: A!+B!+C!=ABC
: 考虑5!=120, 6!=720,首先不可能有6,不然720里面的7无法实现,所以只可能0-5。
: 另外一定有5,不然4!x3也不到100. 确定了一个就好办了,另外一定有1,因为最高位
: 是1.剩下的就是4了

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。