求陣列中區間中最小數 區間所有數和的最大值

2021-09-20 14:28:54 字數 583 閱讀 9030

給定乙個陣列序列,使得區間經過如下計算的值是所有區間中最大的:區間中的最小數*區間所有數的和

如[6,2,1],則求出區間為[6]

輸入:

3 6 2 1

輸出:

36大體思路:

給定乙個陣列序列,

使得區間經過如下計算的值是所有區間中最大的:

區間中的最小數*區間所有數的和

如[6,2,1],則求出區間為[6]

輸入:

3 6 2 1

輸出:

36大體思路: 把每個數字看成最小值,

因為所有數大於0,符合條件的區間越大值越高

掃左掃右,得到邊界(第乙個小於arr[i]的)

最後依次判斷得到答案

public

class

test else

}//左邊界

for (int j = i-1; j >= 0;j--) else

}ans = math.max(ans,sum[i]*arr[i]);

}return ans;

}}

1174 區間中最大的數

1174 區間中最大的數 時間限制 1 秒 空間限制 65536 kb 分值 0 給出乙個有n個數的序列,編號0 n 1。進行q次查詢,查詢編號i至j的所有數中,最大的數是多少。例如 1 7 6 3 1。i 1,j 3,對應的數為7 6 3,最大的數為7。該問題也被稱為rmq問題 input 第1行...

51Nod 1174 區間中最大數

acm模版 給出乙個有n個數的序列,編號0 n 1。進行q次查詢,查詢編號i至j的所有數中,最大的數是多少。例如 1 7 6 3 1。i 1,j 3,對應的數為7 6 3,最大的數為7。該問題也被稱為rmq問題 input 第1行 1個數n,表示序列的長度。2 n 10000 第2 n 1行 每行1...

51Nod 1174區間中最大值

題目要求,先輸入乙個陣列,然後求出陣列中某乙個區間中的最大值。是不是覺得,我就直接用for迴圈就可以寫啦,賊好寫。這樣子講吧,如果你只搜尋一次的話,是看不出什麼區別的,但是如果你要搜尋m次,m又很大呢?每一次都要用迴圈去乙個乙個比較嗎?o n m 的時間複雜度是不是會讓你體驗極差 這個題目在經過自己...