Re: [討論] 面試遇到的考題
※ 引述《sleeper0121 (sleeper)》之銘言:
: 今天去面試,裡面有題題目是這樣:
: 寫個函式,傳個整數陣列進去,陣列裡面的整數可以是正數、負數或 0
: 請回傳一個陣列裡面相鄰互乘的最大整數值
: 例如: [2 , -7 , 0 , 2 , 3 , 8 , -6 , 5]
: 就是 2 * 3 * 8 = 48
: 再一個例子: [-2 , 0 , 3 , 5 , -7]
: 就是 3 * 5 = 15
: 請問這題思考邏輯大概是怎樣呢?
: 當下沒解出來,害我回家後還一直再想 XD
暴力解(in JavaScript),裡面有應用到部份 DP 的觀念。
var input = [-2,0,3,5,-7];
var result = {sum:input[0],items:[input[0]]};
var stacks = [];
for(var i = 0 ; i < input.length ;++i){
var now = input[i];
if(now == 0){ //優化
stacks.length = 0; //drop old queue
continue;
}
for(var j = 0 ; j < stacks.length ;++ j){
stacks[j].sum *= now;
stacks[j].items.push(now);
if(stacks[j].sum > result.sum){
result.sum = stacks[j].sum;
result.items = stacks[j].items.slice(0);
}
}
stacks.push({sum:now,items:[now]});
if(now > result.sum){
result.sum = now;
result.items = [now];
}
}
console.log(result.sum, result.items);
解題邏輯
[2 , -7 , 0 , 2 , 3 , 8 , -6 , 5]
2
2 * -7
-7
0(清queue)
2
2 * 3
3
2 * 3 * 8
3 * 8
8
2 * 3 * 8 * -6
3 * 8 * -6
8 * -6
2 * 3 * 8 * -6 * 5
3 * 8 * -6 * 5
8 * -6 * 5
-6 * 5
5
.........
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.169.82
※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1404370996.A.997.html
※ 編輯: TonyQ (211.75.169.82), 07/03/2014 15:03:48
推
07/03 15:12, , 1F
07/03 15:12, 1F
→
07/03 15:13, , 2F
07/03 15:13, 2F
推
07/03 15:13, , 3F
07/03 15:13, 3F
→
07/03 15:13, , 4F
07/03 15:13, 4F
→
07/03 15:14, , 5F
07/03 15:14, 5F
※ 編輯: TonyQ (211.75.169.82), 07/03/2014 15:21:06
推
07/03 15:17, , 6F
07/03 15:17, 6F
→
07/03 15:17, , 7F
07/03 15:17, 7F
※ 編輯: TonyQ (211.75.169.82), 07/03/2014 15:22:02
→
07/03 15:23, , 8F
07/03 15:23, 8F
→
07/03 15:23, , 9F
07/03 15:23, 9F
※ 編輯: TonyQ (211.75.169.82), 07/03/2014 15:25:16
※ 編輯: TonyQ (211.75.169.82), 07/03/2014 15:27:15
※ 編輯: TonyQ (211.75.169.82), 07/03/2014 15:32:14
推
07/03 15:38, , 10F
07/03 15:38, 10F
→
07/03 15:38, , 11F
07/03 15:38, 11F
→
07/03 15:39, , 12F
07/03 15:39, 12F
→
07/03 15:40, , 13F
07/03 15:40, 13F
→
07/03 15:41, , 14F
07/03 15:41, 14F
→
07/03 15:41, , 15F
07/03 15:41, 15F
→
07/03 15:42, , 16F
07/03 15:42, 16F
→
07/03 15:42, , 17F
07/03 15:42, 17F
→
07/03 15:43, , 18F
07/03 15:43, 18F
推
07/03 15:47, , 19F
07/03 15:47, 19F
→
07/03 15:48, , 20F
07/03 15:48, 20F
推
07/03 15:48, , 21F
07/03 15:48, 21F
推
07/03 15:48, , 22F
07/03 15:48, 22F
→
07/03 16:07, , 23F
07/03 16:07, 23F
→
07/03 16:07, , 24F
07/03 16:07, 24F
※ 編輯: TonyQ (211.75.169.82), 07/03/2014 16:20:57
→
07/03 16:59, , 25F
07/03 16:59, 25F
→
07/03 16:59, , 26F
07/03 16:59, 26F
推
07/03 20:39, , 27F
07/03 20:39, 27F
→
07/04 16:05, , 28F
07/04 16:05, 28F
討論串 (同標題文章)
本文引述了以下文章的的內容:
討論
1
10
以下文章回應了本文:
討論
1
3
完整討論串 (本文為第 2 之 27 篇):
討論
1
10
討論
8
28
討論
2
13
討論
1
3
討論
4
4
討論
1
16
討論
1
5
討論
1
2