leetcode962 最大寬度坡

2021-09-26 13:25:30 字數 759 閱讀 7874

給定乙個整數陣列 a,坡是元組 (i, j),其中 i < j 且 a[i] <= a[j]。這樣的坡的寬度為 j - i。

找出 a 中的坡的最大寬度,如果不存在,返回 0 。

示例 1:

輸入:[6,0,8,2,1,5]

輸出:4

解釋:最大寬度的坡為 (i, j) = (1, 5): a[1] = 0 且 a[5] = 5.

對於每乙個形如 a[i] = v 的元素,我們將其索引 i 按照對應值 v 排序之後的順序寫下。例如, a[0] = 7, a[1] = 2, a[2] = 5, a[3] = 4,我們應該這樣順序寫下索引值 i=1, i=3, i=2, i=0。

然後,當我們寫下乙個索引 i 的時候,我們可以得到候選的寬度答案 i - min(indexes_previously_written) (如果這個值是正數的話)。 我們可以用乙個變數 m 記錄已經寫下的最小索引。

class solution 

integer dp = new integer[a.length];

for (int i = 0;i < a.length;i++)

arrays.sort(dp,(i,j)->((integer)a[i]).compareto(a[j]));

int ans = 0,m = a.length;

for (int i : dp)

return ans;

}}

Leetcode962 最大寬度坡

class solution res math.max res,j i return res 這個思路很簡單,也是我第一開始想到的,沒有優化的思路,不過也可以通過測試,思路是 遍歷陣列,每次從右邊找到第乙個大於等於a i 的索引j然後每次遍歷更新最大的j i,最後將結果返回就可以了。該思路可以優化,...

LeetCode962 最大寬度坡

題目的意思就是找到兩個隔的距離最遠的兩個數,要求這兩個數後面的要大於等於前面的,返回那個最遠的距離。這道題我一開始直接用的暴力,時間複雜度到n方,會超時。暴力其實也不是不可以通過,但是要注意剪枝吖,要注意剪枝注意剪枝,純粹的暴力當然會超時吖。一定要注意剪枝哦。大致過程 第乙個數到最後乙個數,先迭代一...

962 最大寬度坡

962.最大寬度坡 超時解法1 class solution 找出最大坡度 for auto i count.begin i count.end i return slope int check pair int,pair int,int tmp,vector int a for int j tmp...