[英]Maximum Value of subarray
是否有任何函數可以從longint數組的子數組中返回最大數目?
例如:
我有一個數組:[2,3,6,2,9,4,2,4]
我想要數組(9)的前5個元素[2,3,6,2,9]的最大值
哪個是最好的解決方案?
您不需要創建另一個數組。 出現的第一個解決方案是在數組內部循環,將第一個值作為'tempMaxValue',然后獲取將每個值與'tempMaxValue'進行比較的數組。
如果該值大於'tempMaxValue',則使用該特定值更新'tempMaxValue',然后跳轉到數組中的下一個值,否則就跳轉到下一個值。
使用此解決方案,您可以管理要搜索的項目數(此處您希望在前5個元素中獲得最大的項目數,因此循環將從0變為4)
編輯:(如@TLama所說)
更確切地說,這是一個簡單的解決方案:編寫一個函數,該函數將一個數組,最低和最高索引作為參數。
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.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.