Redian新闻
>
安猪平板都用什么播放器?
avatar
安猪平板都用什么播放器?# PDA - 掌中宝
x*j
1
老印,三个题。电话晚打1个半小时,中间掉线6次,还把我挂了。投诉HR,再安排一次
电面, 希望下次不要碰到这么傻逼的人。
1.
给一个数组
有没有三个下标 i < j < k, 满足A[i] < A[j] < A[k]。
我用2个数组,dp做的。好像不太满意,有没有比较好的解法?
2.
有一个函数
long compute(int i) {
 return …;
}
返回值有可能出错概率是 p=1/10000。
还有一个函数
long total(int n) {
 long s = 0;
 for (int i =0; i < n; i++) {
   s += compute(i);
 }
 return s;
}
这样出错概率就是 np;
问: 如何改第二个函数,让他的出错概率小于p?
我的思路是,for 循环里,再加个循环,写了代码。 最后老印说work, 大多人都这么做
,好像他不满意。这个题怎么做?
3. 考多线程。
给个函数
long sum(int fileId, int machID){
//return the sum of the numbers in this file using this machine.
}
实现另一个函数,
input: N(N files from 1 to N), enough machine for using
output; the total sum of these files.
long getAllSum(int N){
}
大牛说说这题怎么写?
avatar
b*y
2
【 以下文字转载自 Sex 讨论区 】
发信人: HSPICE (), 信区: Sex
标 题: 第一节猫扑杯我胸我秀大赛
发信站: BBS 未名空间站 (Thu Jun 3 15:19:31 2010, 美东)
原帖在:
http://dzh.mop.com/topic/readSub_11733204_0_0.html
波涛汹涌不比欧美的女人差啊!
avatar
o*s
3
qq player?有点卡
mobo对字幕支持不好
还有什么推荐?
avatar
W*y
4
第一题可以看做是longest increasing sequence 的特例,一旦找到increasing
sequence 长度为2的就return true
这样可以有1 pass的线性算法,constant space。

【在 x***j 的大作中提到】
: 老印,三个题。电话晚打1个半小时,中间掉线6次,还把我挂了。投诉HR,再安排一次
: 电面, 希望下次不要碰到这么傻逼的人。
: 1.
: 给一个数组
: 有没有三个下标 i < j < k, 满足A[i] < A[j] < A[k]。
: 我用2个数组,dp做的。好像不太满意,有没有比较好的解法?
: 2.
: 有一个函数
: long compute(int i) {
:  return …;

avatar
g*u
5
This may strike you as shadow, but I have a lot of respect for the cleavage.
avatar
m*0
6
试试 mx player
avatar
e*2
7
第二题分成n/k段,每段k个,重复t次。然后优化
[[1-(1-p)^k}^t]^(n/k) < p
先对k做最大化,然后求t。
第三题Binary sum,Machine之间应该能通信吧!

【在 x***j 的大作中提到】
: 老印,三个题。电话晚打1个半小时,中间掉线6次,还把我挂了。投诉HR,再安排一次
: 电面, 希望下次不要碰到这么傻逼的人。
: 1.
: 给一个数组
: 有没有三个下标 i < j < k, 满足A[i] < A[j] < A[k]。
: 我用2个数组,dp做的。好像不太满意,有没有比较好的解法?
: 2.
: 有一个函数
: long compute(int i) {
:  return …;

avatar
i*2
8
波涛汹涌不比欧美的女人差啊!
western tits are big because of plastic surgery. Keep it in your mind for
years to come.
avatar
h*b
9
mx player pro,外加xda上面的插件,官方的因为版权问题,砍掉了几个解码

【在 o*****s 的大作中提到】
: qq player?有点卡
: mobo对字幕支持不好
: 还有什么推荐?

avatar
j*3
10
lz简历上有多线程背景么?
avatar
D*a
11
第一张上面几缕碎发,很风尘很动感。
avatar
r*e
12
bsplayer

【在 o*****s 的大作中提到】
: qq player?有点卡
: mobo对字幕支持不好
: 还有什么推荐?

avatar
r*7
13
G果然是bar高啊。。。除了第一题别的都不会。。。
第一题应该是扫一遍,更新min 和 mid,遇到大于mid的就返回

【在 x***j 的大作中提到】
: 老印,三个题。电话晚打1个半小时,中间掉线6次,还把我挂了。投诉HR,再安排一次
: 电面, 希望下次不要碰到这么傻逼的人。
: 1.
: 给一个数组
: 有没有三个下标 i < j < k, 满足A[i] < A[j] < A[k]。
: 我用2个数组,dp做的。好像不太满意,有没有比较好的解法?
: 2.
: 有一个函数
: long compute(int i) {
:  return …;

avatar
h*e
14
摸摸
avatar
l*a
15
关于第二题
function call一次的出错概率是p
call n次的话就是np?

【在 x***j 的大作中提到】
: 老印,三个题。电话晚打1个半小时,中间掉线6次,还把我挂了。投诉HR,再安排一次
: 电面, 希望下次不要碰到这么傻逼的人。
: 1.
: 给一个数组
: 有没有三个下标 i < j < k, 满足A[i] < A[j] < A[k]。
: 我用2个数组,dp做的。好像不太满意,有没有比较好的解法?
: 2.
: 有一个函数
: long compute(int i) {
:  return …;

avatar
l*u
16
牛逼了...人见人爱..
avatar
x*j
17
没有,new grad

【在 j**********3 的大作中提到】
: lz简历上有多线程背景么?
avatar
a*a
18
不出错的概率是(1-p)
n次里面都不出错的概率是(1-p)^n 因为p很小,约等于1-np,
然后出错的概率是1-(1-np) = np.

【在 l*****a 的大作中提到】
: 关于第二题
: function call一次的出错概率是p
: call n次的话就是np?

avatar
k*a
19
是多少?
P的n 次方???

【在 l*****a 的大作中提到】
: 关于第二题
: function call一次的出错概率是p
: call n次的话就是np?

avatar
k*a
20
第三题如果用锁的话,怎么做?
是什么atomic?

【在 x***j 的大作中提到】
: 老印,三个题。电话晚打1个半小时,中间掉线6次,还把我挂了。投诉HR,再安排一次
: 电面, 希望下次不要碰到这么傻逼的人。
: 1.
: 给一个数组
: 有没有三个下标 i < j < k, 满足A[i] < A[j] < A[k]。
: 我用2个数组,dp做的。好像不太满意,有没有比较好的解法?
: 2.
: 有一个函数
: long compute(int i) {
:  return …;

avatar
r*7
21
关键是没有一个对与错的标准,call多少次也无助于找到对的结果啊

【在 l*****a 的大作中提到】
: 关于第二题
: function call一次的出错概率是p
: call n次的话就是np?

avatar
m*p
22
zan

【在 x***j 的大作中提到】
: 老印,三个题。电话晚打1个半小时,中间掉线6次,还把我挂了。投诉HR,再安排一次
: 电面, 希望下次不要碰到这么傻逼的人。
: 1.
: 给一个数组
: 有没有三个下标 i < j < k, 满足A[i] < A[j] < A[k]。
: 我用2个数组,dp做的。好像不太满意,有没有比较好的解法?
: 2.
: 有一个函数
: long compute(int i) {
:  return …;

avatar
j*3
23
一般不会多线程,简历没写,人家不会问的

【在 x***j 的大作中提到】
: 没有,new grad
avatar
x*j
24
那是一般。

【在 j**********3 的大作中提到】
: 一般不会多线程,简历没写,人家不会问的
avatar
m*p
25
约等于np吧 1-(1-p)^n,因为p<<1

【在 l*****a 的大作中提到】
: 关于第二题
: function call一次的出错概率是p
: call n次的话就是np?

avatar
m*p
26
LIS的DP难道不需要一个O(n)的status vector吗?

【在 W*********y 的大作中提到】
: 第一题可以看做是longest increasing sequence 的特例,一旦找到increasing
: sequence 长度为2的就return true
: 这样可以有1 pass的线性算法,constant space。

avatar
m*p
27
第二个能不能
call每个函数3次,然后take majority vote呢,这样单次出错的概率大概是3p^2 << p

【在 x***j 的大作中提到】
: 老印,三个题。电话晚打1个半小时,中间掉线6次,还把我挂了。投诉HR,再安排一次
: 电面, 希望下次不要碰到这么傻逼的人。
: 1.
: 给一个数组
: 有没有三个下标 i < j < k, 满足A[i] < A[j] < A[k]。
: 我用2个数组,dp做的。好像不太满意,有没有比较好的解法?
: 2.
: 有一个函数
: long compute(int i) {
:  return …;

avatar
T*u
28
就是这个思路吧。关键看需要多少次才能满足出错概率,3次可能太多也可能太少。

p

【在 m*********p 的大作中提到】
: 第二个能不能
: call每个函数3次,然后take majority vote呢,这样单次出错的概率大概是3p^2 << p

avatar
g*4
29
第一题我也只会用2个数组来做,类似G家的买卖股票那题
有没有人能提供个更好的解法?
avatar
w*a
30
这个解法能不能用?
vector three_nums(const vector& nums) {
if(nums.empty()) return {};

int first = 0, mid = 0;
int second = -1;

for(int i = 1; i < nums.size(); ++i) {
if(second == -1) {
if(nums[first] < nums[i]) {
second = i;
} else if (nums[first] > nums[i]) {
first = i;
}
} else if (nums[i] > nums[second]) {
return {nums[first], nums[second], nums[i]};
} else if (nums[i] > nums[first]) {
first = mid;
second = i;
}
}
return {};
}

【在 g**4 的大作中提到】
: 第一题我也只会用2个数组来做,类似G家的买卖股票那题
: 有没有人能提供个更好的解法?

avatar
c*w
31
第一题O1 space 解
设ai是原数组
xi=min{aj|jyi=min{aj|exist akFor every i
If ai>y[i-1], done
Elif aiElse
yi = ai
One pass while updating xi yi
[发表自未名空间手机版 - m.mitbbs.com]
avatar
W*y
32
不是的,其实是需要一个size 为 k+1的vector,其中k为最大increasing subarray 的
长度。
对本题只需找到k为3的解是否存在,因此空间constant,时间O(n)
bool kLIS(vector &data, int k){
vector stack(k+1);
int top = 0;
stack[0] = -1;
for(int i=0;iif(data[i]>stack[top]){
stack[++top] = data[i];
}
else{
auto low = lower_bound(stack.begin(), top+stack.begin(), data[i]);
*low = data[i];
}
if(top==k)
return true;
}
return false;
}

【在 m*********p 的大作中提到】
: LIS的DP难道不需要一个O(n)的status vector吗?
avatar
j*p
33
我看第一题也是想到用stack一次扫描即可,保存到当前位置最大值最小的上升序列,
跟楼上一样。但stack长度只需要k-1就够了吧,一旦溢出就可以返回结果了。
第二题只需要循环内部做一个majority vote即可
第三题我会用map reduce的思路去解

【在 W*********y 的大作中提到】
: 不是的,其实是需要一个size 为 k+1的vector,其中k为最大increasing subarray 的
: 长度。
: 对本题只需找到k为3的解是否存在,因此空间constant,时间O(n)
: bool kLIS(vector &data, int k){
: vector stack(k+1);
: int top = 0;
: stack[0] = -1;
: for(int i=0;i: if(data[i]>stack[top]){
: stack[++top] = data[i];

avatar
l*h
34
若凭南辕吏
为问乘槎人
包含通远迩
子夏正离群
故人别二年
万里忽争先
事与云水白
皆欲肆轥轹
可夭札迷冥
抛官归旧谿
avatar
l*s
35
1. O(n)
从左到右update minValue, 对于A[i]比minValue大,说明A[i]有小的在左边, 记录在
一个boolean array里面
从右到左update maxValue, 对于A[i]比minValue小,说明A[i]有大的在右边
2.
s += compute(i)
在这里call computer(i)两次
1)如果两次值一样,出错的几率是p*p
2)如果两次值不一样,就任意取一个p*p + p*0.5 (可能两个值都错,也有可能一个
对一个错)
3.
同一个machine多线程的话,blockingQueue里面放fileId,sum设为static的
atomicInteger
多个machine的话,就是IPC,一个machine做coordinator,往message queue里面放
fileID。其他machine从message queue里面拿fileID,统计完把结果放到另外一个
message queue里面,coordinator取出结果然后sumAll.
其实就是mapper + reducer

【在 x***j 的大作中提到】
: 老印,三个题。电话晚打1个半小时,中间掉线6次,还把我挂了。投诉HR,再安排一次
: 电面, 希望下次不要碰到这么傻逼的人。
: 1.
: 给一个数组
: 有没有三个下标 i < j < k, 满足A[i] < A[j] < A[k]。
: 我用2个数组,dp做的。好像不太满意,有没有比较好的解法?
: 2.
: 有一个函数
: long compute(int i) {
:  return …;

avatar
e*n
36
多长时间那,要做3题?

【在 x***j 的大作中提到】
: 老印,三个题。电话晚打1个半小时,中间掉线6次,还把我挂了。投诉HR,再安排一次
: 电面, 希望下次不要碰到这么傻逼的人。
: 1.
: 给一个数组
: 有没有三个下标 i < j < k, 满足A[i] < A[j] < A[k]。
: 我用2个数组,dp做的。好像不太满意,有没有比较好的解法?
: 2.
: 有一个函数
: long compute(int i) {
:  return …;

avatar
P*i
37
只返回T/F constant space就可以,不然得linear space
不过感觉还有更快的O(log n)的方法

【在 c*****w 的大作中提到】
: 第一题O1 space 解
: 设ai是原数组
: xi=min{aj|j: yi=min{aj|exist ak: For every i
: If ai>y[i-1], done
: Elif ai: Else
: yi = ai
: One pass while updating xi yi

avatar
e*0
38
反例 2,3,1,4

【在 c*****w 的大作中提到】
: 第一题O1 space 解
: 设ai是原数组
: xi=min{aj|j: yi=min{aj|exist ak: For every i
: If ai>y[i-1], done
: Elif ai: Else
: yi = ai
: One pass while updating xi yi

avatar
c*w
39
2 3 1 4
x 2 2 1 1
y na 3 3 3(4>3done)

[发表自未名空间手机版 - m.mitbbs.com]

【在 e*******0 的大作中提到】
: 反例 2,3,1,4
avatar
c*w
40
变量名没用好,这里的x y不对应原题的x y

[发表自未名空间手机版 - m.mitbbs.com]

【在 c*****w 的大作中提到】
: 2 3 1 4
: x 2 2 1 1
: y na 3 3 3(4>3done)
:
: [发表自未名空间手机版 - m.mitbbs.com]

avatar
Q*F
41
第二题,可不可以用这个思路。
假设每个compute(i)算两次,比较两次的结果,如果相等就算完成,要不然就重新计
算,这步出错的概率为p^2,
那么这个出错的概率问n*(p^2).
如果这个要小于 p
n<1/p 就可以了
如果计算3次,比较3次的结果,这本出错的概率为p^3.
只要n<1/(p^2)就可以了。
avatar
w*k
42
bool incr(vector& v)
{
int min = INT_MAX;
int mid = INT_MAX;
for(int i : v)
{
if(i <= min)
min = i;
else if(i <= mid)
mid = i;
else
return true;
}
return false;
}
avatar
k*7
43
5, 6, 1, 2, 3

【在 w****a 的大作中提到】
: 这个解法能不能用?
: vector three_nums(const vector& nums) {
: if(nums.empty()) return {};
:
: int first = 0, mid = 0;
: int second = -1;
:
: for(int i = 1; i < nums.size(); ++i) {
: if(second == -1) {
: if(nums[first] < nums[i]) {

avatar
i*t
44
第一题你考虑太复杂了,先考虑如果只是i,j怎么做,只是找个比当前最小的值大的就
结束了。扩展到k,就是找个比当前A[j]大的就结束了,当然A[j]可能会变小的。
第二题,如果compute(i)是p,那么连续两次都出错的概率就是p^2 (连续调用直到连
续两次得到的结果相同),根据n的大小,连续调用compute(i)多次,使得最终的概率
小于p
第三题,没觉得是多线程,都有machineid了,怎么是多线程?分布式吧。map reduce

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