題目的意思就是找到兩個隔的距離最遠的兩個數,要求這兩個數後面的要大於等於前面的,返回那個最遠的距離。
這道題我一開始直接用的暴力,時間複雜度到n方,會超時。
暴力其實也不是不可以通過,但是要注意剪枝吖,要注意剪枝注意剪枝,純粹的暴力當然會超時吖。
一定要注意剪枝哦。
大致過程:第乙個數到最後乙個數,先迭代一遍,找出來最大的距離。
剪枝1:迭代是從後向前,當在後面找到了乙個數字合適,那麼就跳出,沒有必要整個都遍歷一遍了。
第二個數到最後乙個數,迭代一遍,找出來最大的距離。
剪枝2: 當第二次迭代要開始之前,看一下我上一次迭代完得到的最大的距離是不是要比這個能得到的最大的距離要大,如果成立的話,可以結束程式啦。
class
solution}}
return max;
}}
Leetcode962 最大寬度坡
class solution res math.max res,j i return res 這個思路很簡單,也是我第一開始想到的,沒有優化的思路,不過也可以通過測試,思路是 遍歷陣列,每次從右邊找到第乙個大於等於a i 的索引j然後每次遍歷更新最大的j i,最後將結果返回就可以了。該思路可以優化,...
leetcode962 最大寬度坡
給定乙個整數陣列 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 的元素...
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...