簡體   English   中英

子數組的最大值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM