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

作者: super2649 (渾渾噩噩)   2014-07-03 22:12:18
※ 引述《sleeper0121 (sleeper)》之銘言:
: 今天去面試,裡面有題題目是這樣:
: 寫個函式,傳個整數陣列進去,陣列裡面的整數可以是正數、負數或 0
: 請回傳一個陣列裡面相鄰互乘的最大整數值
: 例如: [2 , -7 , 0 , 2 , 3 , 8 , -6 , 5]
: 就是 2 * 3 * 8 = 48
: 再一個例子: [-2 , 0 , 3 , 5 , -7]
: 就是 3 * 5 = 15
: 請問這題思考邏輯大概是怎樣呢?
: 當下沒解出來,害我回家後還一直再想 XD
之前面試也有考這題...
我是這樣解法 不知道哪邊有問題?
int[] array = new int[] { -2 , 0 , 3 , 5 , -7 };
int max = array[0] * array[1];
for (int i = 0; i < array.length - 1; i++) {
int sum = array[i];
for (int j = i + 1; j < array.length; j++) {
sum *= array[j];
if (sum < max) {
break;
}
max = sum;
}
}
System.out.println(max);
是用JAVA 寫的
作者: kiii210 (HelloWorld!)   2014-07-03 22:24:00
看完整串我只想說 PTT有沒有類似的版啊有專版 可以問面試的題目 大家一起討論好像也不錯
作者: dementia (早安競女賽尻認同請分享)   2014-07-03 22:32:00
"if(sum==max){}"碰到很多負數時會有問題,例{-2,2,2-2}應該算出16,你的程式會算出4sry錯字 應該是"sum<max"
作者: y3k (激流を制するは静水)   2014-07-03 22:35:00
你這樣寫有個問題 就是如果搜尋到負數 但是下一個也是負數的時候一定會出錯我個人會先把正負用一個新陣列標出來個別分析一次XD
作者: yyc1217 (somo)   2014-07-03 22:50:00
有Prob_solve版
作者: super2649 (渾渾噩噩)   2014-07-03 23:12:00
感謝..難怪面試被說邏輯很差..哀
作者: dementia (早安競女賽尻認同請分享)   2014-07-03 23:20:00
原po拍拍,加油加油

Links booklink

Contact Us: admin [ a t ] ucptt.com