【发布时间】:2020-02-09 10:58:55
【问题描述】:
我正在为硬件问题创建一个分而治之的算法。给定一个数组,我需要找到最大值的索引(如果有多个索引,则为任何索引)。如果我想返回最高值,我的解决方案有效,但是在尝试从堆栈的底部传递索引时发现困难。每个级别的数组大小不同。
int findLargestPos(int[] arr) {
int n = arr.length;
int mid = (int)Math.floor(arr.length / 2);
if (arr.length <= 1) {
return 0;
}
int[] arr2 = new int[mid];
int[] arr3 = new int[arr.length - mid];
copyArr(arr, arr2, 0, 0);
copyArr(arr, arr3, mid, 0);
int index1 = findLargestPos(arr);
int index2 = findLargestPos(arr);
// Problem starts
if (value from arr2 is greater than arr3) {
return arr2 index
}
return arr3 index
}
【问题讨论】:
标签: java algorithm divide-and-conquer