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