-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
49 additions
and
0 deletions.
There are no files selected for viewing
49 changes: 49 additions & 0 deletions
49
2948-make-lexicographically-smallest-array-by-swapping-elements/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
<h2><a href="https://leetcode.com/problems/make-lexicographically-smallest-array-by-swapping-elements">2948. Make Lexicographically Smallest Array by Swapping Elements</a></h2><h3>Medium</h3><hr><p>You are given a <strong>0-indexed</strong> array of <strong>positive</strong> integers <code>nums</code> and a <strong>positive</strong> integer <code>limit</code>.</p> | ||
|
||
<p>In one operation, you can choose any two indices <code>i</code> and <code>j</code> and swap <code>nums[i]</code> and <code>nums[j]</code> <strong>if</strong> <code>|nums[i] - nums[j]| <= limit</code>.</p> | ||
|
||
<p>Return <em>the <strong>lexicographically smallest array</strong> that can be obtained by performing the operation any number of times</em>.</p> | ||
|
||
<p>An array <code>a</code> is lexicographically smaller than an array <code>b</code> if in the first position where <code>a</code> and <code>b</code> differ, array <code>a</code> has an element that is less than the corresponding element in <code>b</code>. For example, the array <code>[2,10,3]</code> is lexicographically smaller than the array <code>[10,2,3]</code> because they differ at index <code>0</code> and <code>2 < 10</code>.</p> | ||
|
||
<p> </p> | ||
<p><strong class="example">Example 1:</strong></p> | ||
|
||
<pre> | ||
<strong>Input:</strong> nums = [1,5,3,9,8], limit = 2 | ||
<strong>Output:</strong> [1,3,5,8,9] | ||
<strong>Explanation:</strong> Apply the operation 2 times: | ||
- Swap nums[1] with nums[2]. The array becomes [1,3,5,9,8] | ||
- Swap nums[3] with nums[4]. The array becomes [1,3,5,8,9] | ||
We cannot obtain a lexicographically smaller array by applying any more operations. | ||
Note that it may be possible to get the same result by doing different operations. | ||
</pre> | ||
|
||
<p><strong class="example">Example 2:</strong></p> | ||
|
||
<pre> | ||
<strong>Input:</strong> nums = [1,7,6,18,2,1], limit = 3 | ||
<strong>Output:</strong> [1,6,7,18,1,2] | ||
<strong>Explanation:</strong> Apply the operation 3 times: | ||
- Swap nums[1] with nums[2]. The array becomes [1,6,7,18,2,1] | ||
- Swap nums[0] with nums[4]. The array becomes [2,6,7,18,1,1] | ||
- Swap nums[0] with nums[5]. The array becomes [1,6,7,18,1,2] | ||
We cannot obtain a lexicographically smaller array by applying any more operations. | ||
</pre> | ||
|
||
<p><strong class="example">Example 3:</strong></p> | ||
|
||
<pre> | ||
<strong>Input:</strong> nums = [1,7,28,19,10], limit = 3 | ||
<strong>Output:</strong> [1,7,28,19,10] | ||
<strong>Explanation:</strong> [1,7,28,19,10] is the lexicographically smallest array we can obtain because we cannot apply the operation on any two indices. | ||
</pre> | ||
|
||
<p> </p> | ||
<p><strong>Constraints:</strong></p> | ||
|
||
<ul> | ||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li> | ||
<li><code>1 <= nums[i] <= 10<sup>9</sup></code></li> | ||
<li><code>1 <= limit <= 10<sup>9</sup></code></li> | ||
</ul> |