如何解决执行数组操作后的最终最大元素
- 最佳选择两个索引 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 举报,一经查实,本站将立刻删除。