执行数组操作后的最终最大元素

问题描述

我有一个数组 A,现在我想对其进行以下操作:

  1. 最佳选择两个索引 i 和 j,使得 i != j。
  2. 将 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 (将#修改为@)