Skip to content

Commit 90cb4a7

Browse files
committed
Sync LeetCode submission Runtime - 1 ms (62.16%), Memory - 17.9 MB (59.91%)
1 parent ca9f919 commit 90cb4a7

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<p>Given a <strong>0-indexed</strong> integer array <code>nums</code> of size <code>n</code>, find the <strong>maximum difference</strong> between <code>nums[i]</code> and <code>nums[j]</code> (i.e., <code>nums[j] - nums[i]</code>), such that <code>0 &lt;= i &lt; j &lt; n</code> and <code>nums[i] &lt; nums[j]</code>.</p>
2+
3+
<p>Return <em>the <strong>maximum difference</strong>. </em>If no such <code>i</code> and <code>j</code> exists, return <code>-1</code>.</p>
4+
5+
<p>&nbsp;</p>
6+
<p><strong class="example">Example 1:</strong></p>
7+
8+
<pre>
9+
<strong>Input:</strong> nums = [7,<strong><u>1</u></strong>,<strong><u>5</u></strong>,4]
10+
<strong>Output:</strong> 4
11+
<strong>Explanation:</strong>
12+
The maximum difference occurs with i = 1 and j = 2, nums[j] - nums[i] = 5 - 1 = 4.
13+
Note that with i = 1 and j = 0, the difference nums[j] - nums[i] = 7 - 1 = 6, but i &gt; j, so it is not valid.
14+
</pre>
15+
16+
<p><strong class="example">Example 2:</strong></p>
17+
18+
<pre>
19+
<strong>Input:</strong> nums = [9,4,3,2]
20+
<strong>Output:</strong> -1
21+
<strong>Explanation:</strong>
22+
There is no i and j such that i &lt; j and nums[i] &lt; nums[j].
23+
</pre>
24+
25+
<p><strong class="example">Example 3:</strong></p>
26+
27+
<pre>
28+
<strong>Input:</strong> nums = [<strong><u>1</u></strong>,5,2,<strong><u>10</u></strong>]
29+
<strong>Output:</strong> 9
30+
<strong>Explanation:</strong>
31+
The maximum difference occurs with i = 0 and j = 3, nums[j] - nums[i] = 10 - 1 = 9.
32+
</pre>
33+
34+
<p>&nbsp;</p>
35+
<p><strong>Constraints:</strong></p>
36+
37+
<ul>
38+
<li><code>n == nums.length</code></li>
39+
<li><code>2 &lt;= n &lt;= 1000</code></li>
40+
<li><code>1 &lt;= nums[i] &lt;= 10<sup>9</sup></code></li>
41+
</ul>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Approach: Prefix Minimum Value
2+
3+
# Time: O(n)
4+
# Space: O(1)
5+
6+
class Solution:
7+
def maximumDifference(self, nums: List[int]) -> int:
8+
n = len(nums)
9+
ans, pre_min = -1, nums[0]
10+
11+
for i in range(1, n):
12+
if nums[i] > pre_min:
13+
ans = max(ans, nums[i] - pre_min)
14+
else:
15+
pre_min = nums[i]
16+
17+
return ans

0 commit comments

Comments
 (0)