題目連結(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)。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。