Re: [討論] 面試遇到的考題

作者: lovdkkkk (dk)   2014-07-03 18:32:50
※ 引述《sleeper0121 (sleeper)》之銘言:
: 今天去面試,裡面有題題目是這樣:
: 寫個函式,傳個整數陣列進去,陣列裡面的整數可以是正數、負數或 0
: 請回傳一個陣列裡面相鄰互乘的最大整數值
: 例如: [2 , -7 , 0 , 2 , 3 , 8 , -6 , 5]
: 就是 2 * 3 * 8 = 48
: 再一個例子: [-2 , 0 , 3 , 5 , -7]
: 就是 3 * 5 = 15
: 請問這題思考邏輯大概是怎樣呢?
: 當下沒解出來,害我回家後還一直再想 XD
1. 用 0 切但 0 不可以去掉
ex -1, 0, -2
最大值是 0, 去掉就只剩負的
(如題目改為最大正整數則無解)
EDIT: 假如一定要 "互乘" 不能取單一個數, 則此例改為
-1, 1, 0, -2, 1
2. 除零外的子數列:
2.1 含一個負數則以該負數為切點再切
2.2 含二個 (含) 以上的偶數個負數則取全數列
2.3 含三個 (含) 以上的奇數個負數則取以下兩個數列
子數列第一個值取到子數列中最後一個負數之前
子數列中第一個負數之後取到子數列的最後一個值
ex: 1, -2, 1, -2, -3, 1
則取 1, -2, 1, -2 和 1, -2, -3, 1 兩者
邏輯大概這樣, 程式就算了, 沒想清楚的細節也算了 XD
作者: descent (「雄辯是銀,沉默是金」)   2014-07-03 19:04:00
有回答問題的網友們, 你們花了多久想出解法
作者: lovdkkkk (dk)   2014-07-03 19:55:00
大概有十分鐘?
作者: cckk3333 (皓月)   2014-07-03 20:11:00
2~3分鐘 不過我類似題目曾經想蠻久的orz這類題目還是很吃經驗

Links booklink

Contact Us: admin [ a t ] ucptt.com