2016. 增量元素之間的最大差值

難度:簡(jiǎn)單

題目:

給你一個(gè)下標(biāo)從 0 開(kāi)始的整數(shù)數(shù)組 nums ,該數(shù)組的大小為 n ,請(qǐng)你計(jì)算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 nums[i] < nums[j] 。

返回 最大差值 。如果不存在滿(mǎn)足要求的 i 和 j ,返回 -1 。

示例 1:

輸入:nums = [7,1,5,4]
輸出:4
解釋?zhuān)?br> 最大差值出現(xiàn)在 i = 1 且 j = 2 時(shí),nums[j] - nums[i] = 5 - 1 = 4 。
注意,盡管 i = 1 且 j = 0 時(shí) ,nums[j] - nums[i] = 7 - 1 = 6 > 4 ,但 i > j 不滿(mǎn)足題面要求,所以 6 不是有效的答案。
示例 2:

輸入:nums = [9,4,3,2]
輸出:-1
解釋?zhuān)?br> 不存在同時(shí)滿(mǎn)足 i < j 和 nums[i] < nums[j] 這兩個(gè)條件的 i, j 組合。
示例 3:

輸入:nums = [1,5,2,10]
輸出:9
解釋?zhuān)?br> 最大差值出現(xiàn)在 i = 0 且 j = 3 時(shí),nums[j] - nums[i] = 10 - 1 = 9 。

解題思路:前綴最小值

理清這道題的限制條件:
1)i < j;
2)nums[i] < nums[j];
3)Max(nums[j] - nums[i]);

明確了只需要不斷找到數(shù)組中的最小值,同時(shí)計(jì)算下標(biāo)比他大同時(shí)數(shù)值也比它大的數(shù)與他的差,更新最大的差值

Java代碼:

class Solution {
    public int maximumDifference(int[] nums) {
        int deleteMax = -1, premin = nums[0], n = nums.length;
        for(int j = 1; j < n; j++){
            if(nums[j] > premin){
                deleteMax = Math.max(deleteMax, nums[j] - premin);
            }
            else{
                premin = nums[j];
            }
        }
        return deleteMax;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容