是否有任何函数从longint数组的子数组返回最大数字?
例如:
我有阵列:[2,3,6,2,9,4,2,4]
我想要数组(9)的前5个元素[2,3,6,2,9]的最大值
哪种解决方案最好?
答案 0 :(得分:5)
您不需要创建另一个阵列。 第一个解决方案是在数组中循环,将第一个值作为' tempMaxValue',然后获取数组,将每个值与'tempMaxValue'进行比较。
如果该值大于' tempMaxValue',请更新' tempMaxValue'使用该特定值,然后跳转到数组中的下一个值,否则只需跳转到下一个值。
使用此解决方案,您可以管理要搜索的项目数(此处您希望5个第一个元素中的最大数字,因此您的循环将从0到4)
编辑:(正如@TLama所说)
答案 1 :(得分:0)
更具体地说,这是一个简单的解决方案:编写一个函数,它接受一个数组,最低和最高的索引作为参数。
program Project1;
uses sysutils;
type TIntegerArray = array of Integer;
function maxInRange(const anArr: TIntegerArray; boundLow, boundHi: Integer): Integer;
var
i: Integer;
begin
result := anArr[boundLow];
for i := boundLow + 1 to boundHi do
if anArr[i] > result then
result := anArr[i];
end;
const
arr: array[0..7] of Integer = (2,3,6,2,9,4,2,4);
begin
writeln(intToStr(maxInRange(arr,0,4)));
readln;
end.