Nav: << previous: 219.存在重复元素 II | next: 221.最大正方形 >>
Description
tab: English
<p>You are given an integer array <code>nums</code> and two integers <code>indexDiff</code> and <code>valueDiff</code>.</p>
<p>Find a pair of indices <code>(i, j)</code> such that:</p>
<ul>
<li><code>i != j</code>,</li>
<li><code>abs(i - j) <= indexDiff</code>.</li>
<li><code>abs(nums[i] - nums[j]) <= valueDiff</code>, and</li>
</ul>
<p>Return <code>true</code><em> if such pair exists or </em><code>false</code><em> otherwise</em>.</p>
<p> </p>
<p><strong class="example">Example 1:</strong></p>
<pre>
<strong>Input:</strong> nums = [1,2,3,1], indexDiff = 3, valueDiff = 0
<strong>Output:</strong> true
<strong>Explanation:</strong> We can choose (i, j) = (0, 3).
We satisfy the three conditions:
i != j --> 0 != 3
abs(i - j) <= indexDiff --> abs(0 - 3) <= 3
abs(nums[i] - nums[j]) <= valueDiff --> abs(1 - 1) <= 0
</pre>
<p><strong class="example">Example 2:</strong></p>
<pre>
<strong>Input:</strong> nums = [1,5,9,1,5,9], indexDiff = 2, valueDiff = 3
<strong>Output:</strong> false
<strong>Explanation:</strong> After trying all the possible pairs (i, j), we cannot satisfy the three conditions, so we return false.
</pre>
<p> </p>
<p><strong>Constraints:</strong></p>
<ul>
<li><code>2 <= nums.length <= 10<sup>5</sup></code></li>
<li><code>-10<sup>9</sup> <= nums[i] <= 10<sup>9</sup></code></li>
<li><code>1 <= indexDiff <= nums.length</code></li>
<li><code>0 <= valueDiff <= 10<sup>9</sup></code></li>
</ul>
> [!tip]- Hint 1
>
> Time complexity O(n logk) - This will give an indication that sorting is involved for k elements.
> [!tip]- Hint 2
>
> Use already existing state to evaluate next state - Like, a set of k sorted numbers are only needed to be tracked. When we are processing the next number in array, then we can utilize the existing sorted state and it is not necessary to sort next overlapping set of k numbers again.
---
[submissions](https://leetcode.com/problems/contains-duplicate-iii/submissions/) | [solutions](https://leetcode.com/problems/contains-duplicate-iii/solutions/)
tab: 中文
<p>给你一个整数数组 <code>nums</code> 和两个整数 <code>indexDiff</code> 和 <code>valueDiff</code> 。</p>
<p>找出满足下述条件的下标对 <code>(i, j)</code>:</p>
<ul>
<li><code>i != j</code>,</li>
<li><code>abs(i - j) <= indexDiff</code></li>
<li><code>abs(nums[i] - nums[j]) <= valueDiff</code></li>
</ul>
<p>如果存在,返回 <code>true</code><em> ;</em>否则,返回<em> </em><code>false</code><em> </em>。</p>
<p> </p>
<p><strong class="example">示例 1:</strong></p>
<pre>
<strong>输入:</strong>nums = [1,2,3,1], indexDiff = 3, valueDiff = 0
<strong>输出:</strong>true
<strong>解释:</strong>可以找出 (i, j) = (0, 3) 。
满足下述 3 个条件:
i != j --> 0 != 3
abs(i - j) <= indexDiff --> abs(0 - 3) <= 3
abs(nums[i] - nums[j]) <= valueDiff --> abs(1 - 1) <= 0
</pre>
<p><strong class="example">示例 2:</strong></p>
<pre>
<strong>输入:</strong>nums = [1,5,9,1,5,9], indexDiff = 2, valueDiff = 3
<strong>输出:</strong>false
<strong>解释:</strong>尝试所有可能的下标对 (i, j) ,均无法满足这 3 个条件,因此返回 false 。
</pre>
<p> </p>
<p><strong>提示:</strong></p>
<ul>
<li><code>2 <= nums.length <= 10<sup>5</sup></code></li>
<li><code>-10<sup>9</sup> <= nums[i] <= 10<sup>9</sup></code></li>
<li><code>1 <= indexDiff <= nums.length</code></li>
<li><code>0 <= valueDiff <= 10<sup>9</sup></code></li>
</ul>
> [!tip]- 提示 1
>
> Time complexity O(n logk) - This will give an indication that sorting is involved for k elements.
> [!tip]- 提示 2
>
> Use already existing state to evaluate next state - Like, a set of k sorted numbers are only needed to be tracked. When we are processing the next number in array, then we can utilize the existing sorted state and it is not necessary to sort next overlapping set of k numbers again.
---
[提交记录](https://leetcode.cn/problems/contains-duplicate-iii/submissions/) | [题解](https://leetcode.cn/problems/contains-duplicate-iii/solution/)
Solutions & Notes
properties:
note.updated:
displayName: Last Updated
note.relative_links:
displayName: Related Links
note.desc:
displayName: Description
note.grade:
displayName: Rating
note.program_language:
displayName: Language
note.time_complexity:
displayName: TC
note.space_complexity:
displayName: SC
views:
- type: table
name: Solutions & Notes
filters:
and:
- file.hasLink(this.file)
- file.tags.containsAny("leetcode/solution", "leetcode/note")
order:
- file.name
- desc
- program_language
- time_complexity
- space_complexity
- grade
- relative_links
- updated
sort:
- property: grade
direction: ASC
- property: time_complexity
direction: ASC
- property: program_language
direction: ASC
columnSize:
file.name: 104
note.space_complexity: 65
note.grade: 126
Similar Problems
properties:
note.lcTopics:
displayName: Topics
note.lcAcRate:
displayName: AC Rate
note.favorites:
displayName: Favorites
note.grade:
displayName: Rating
note.translatedTitle:
displayName: Title (CN)
note.lcDifficulty:
displayName: Difficulty
views:
- type: table
name: Similar Problems
filters:
and:
- file.hasLink(this.file)
- similarQuestions.contains(this.file)
order:
- file.name
- translatedTitle
- lcTopics
- lcDifficulty
- lcAcRate
- grade
- favorites
sort:
- property: file.name
direction: ASC
- property: lcTopics
direction: DESC
columnSize:
note.translatedTitle: 240
note.lcTopics: 347
note.lcAcRate: 75
note.grade: 122