ETH官方钱包

前往
大廳
主題

LeetCode - 2903. Find Indices With Index and Value Difference I 解題心得

Not In My Back Yard | 2024-12-15 12:00:01 | 巴幣 2 | 人氣 13

題目連結(jié):


題目意譯:
你被給定一個索引值從 0 開始且長度為 n 的整數(shù)陣列 nums、一個整數(shù) indexDifference 以及另一個整數(shù) valueDifference。

你的任務(wù)是找到兩個索引值 i 和 j,兩者都位於範(fàn)圍 [0, n - 1] 中,並滿足以下條件:
    abs(i - j) ≧ indexDifference,且
    abs(nums[i] - nums[j]) ≧ valueDifference

回傳一個整數(shù)陣列 answer,其中如果存在上述的兩個索引值,則 answer = [i, j];反之,則 answer = [-1, -1]。如果所有兩個索引值有多種可能的選擇,則回傳任意一個。

注: i 和 j 可能相等。

限制:
1 ≦ n == nums.length ≦ 100
0 ≦ nums[i] ≦ 50
0 ≦ indexDifference ≦ 100
0 ≦ valueDifference ≦ 50



範(fàn)例測資:
範(fàn)例 1:
輸入: nums = [5,1,4,1], indexDifference = 2, valueDifference = 4
輸出: [0,3]
解釋: 在此例中,可以選擇 i = 0 且 j = 3。
abs(0 - 3) ≧ 2 and abs(nums[0] - nums[3]) ≧ 4。
因此一個合法的答案為 [0,3]。
[3,0] 也是一個合法的答案。

範(fàn)例 2:
輸入: nums = [2,1], indexDifference = 0, valueDifference = 0
輸出: [0,0]
解釋: 在此例中,可以選擇 i = 0 且 j = 0。
abs(0 - 0) ≧ 0 and abs(nums[0] - nums[0]) ≧ 0。
因此一個合法的答案為 is [0,0]。
其他合法的答案為 [0,1] 、 [1,0] 和 [1,1]。

範(fàn)例 3:
輸入: nums = [1,2,3], indexDifference = 2, valueDifference = 4
輸出: [-1,-1]
解釋: 在此例中,可以證明不可能找到同時滿足兩個條件的索引值。
因此回傳 [-1,-1]。


解題思維:
由於 n 最大才 100,因此不需要想太多直接窮舉所有可能的 (i, j) 數(shù)對並檢查有沒有符合條件即可。時間複雜度 O(n ^ 2)。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創(chuàng)作回應(yīng)

更多創(chuàng)作