问题描述
- 最佳选择两个索引 i 和 j,使得 i != j。
- 将 arr[i] 替换为 arr[i] – arr[j] 并从数组中移除 arr[j]。
对数组执行这些操作,使数组最终包含最大值。
示例:
{ 2,3,4,5 }
输出:2
说明:
取 i=0,j=1 然后 {1,5} //(3-2) 取 i=0,j=1 然后 {3,5} // (4-1) 取 i=0,j=1 然后 {2} // (5-3)
其他示例:
{ 1,7 } - 输出:5 { 9,1,5 } - 输出:-6
这是我的代码:
static int find_maximum_value(int A[]) {
int result = 0;
for (int i = 1; i < A.length; i++) {
A[i] = A[i] - A[i - 1];
}
result = A[A.length - 1];
return result;
}
这是几天前面试时问到的。
它适用于上述测试用例。但是还有另一个测试用例失败了。
对于输入 { 8,9,4 },输出应该是考试中提到的-3,但我的程序返回-13。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)