2016. 增量元素之间的最大差值
生活随笔
收集整理的這篇文章主要介紹了
2016. 增量元素之间的最大差值
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2016. 增量元素之間的最大差值
給你一個下標(biāo)從 0 開始的整數(shù)數(shù)組 nums ,該數(shù)組的大小為 n ,請你計算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 nums[i] < nums[j] 。
返回 最大差值 。如果不存在滿足要求的 i 和 j ,返回 -1 。
示例 1:輸入:nums = [7,1,5,4] 輸出:4 解釋: 最大差值出現(xiàn)在 i = 1 且 j = 2 時,nums[j] - nums[i] = 5 - 1 = 4 。 注意,盡管 i = 1 且 j = 0 時 ,nums[j] - nums[i] = 7 - 1 = 6 > 4 ,但 i > j 不滿足題面要求,所以 6 不是有效的答案。示例 2:輸入:nums = [9,4,3,2] 輸出:-1 解釋: 不存在同時滿足 i < j 和 nums[i] < nums[j] 這兩個條件的 i, j 組合。示例 3:輸入:nums = [1,5,2,10] 輸出:9 解釋: 最大差值出現(xiàn)在 i = 0 且 j = 3 時,nums[j] - nums[i] = 10 - 1 = 9 。解題思路
使用變量m維護,當(dāng)前下標(biāo)i之前,數(shù)組曾經(jīng)出現(xiàn)的最小值,如果當(dāng)前遍歷的值大于m,則計算出二者的差值,在所有的差值里面找出最大差值。
代碼
class Solution { public:int maximumDifference(vector<int> &nums) {int m = nums[0], res = -1;for (int i = 1; i < nums.size(); ++i) {if (nums[i] > m)res = max(res,nums[i] - m);elsem = min(nums[i], m);}return res;} };總結(jié)
以上是生活随笔為你收集整理的2016. 增量元素之间的最大差值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女人梦到马屎是什么征兆
- 下一篇: 709. 转换成小写字母