題目連結:
題目意譯:
給定一個索引值從 0 開始且長度為 n 的陣列 nums 以及一整數 k,回傳數對 (i, j) 之數量,其中 0 ≦ i < j < n 、 nums[i] == nums[j] 且 (i × j) 可以被 k 整除。
限制:
1 ≦ nums.length ≦ 100
1 ≦ nums[i], k ≦ 100
範例測資:
範例 1:
輸入: nums = [3,1,2,2,2,1,3], k = 2
輸出: 4
解釋:
現在有 4 對數對滿足所有條件:
- nums[0] == nums[6] 且 0 × 6 == 0,其可以被 2 整除。
- nums[2] == nums[3] 且 2 × 3 == 6,其可以被 2 整除。
- nums[2] == nums[4] 且 2 × 4 == 8,其可以被 2 整除。
- nums[3] == nums[4] 且 3 × 4 == 12,其可以被 2 整除。
範例 2:
輸入: nums = [1,2,3,4], k = 1
輸出: 0
解釋: 因為 nums 中沒有數字重複,因此沒有數對 (i, j) 可以滿足所有條件。
解題思維:
因為陣列 nums 長度最長不超過 100,因此我們直接窮舉出所有可能的數對 (i, j)(其中 i < j)然後統計有多少個如題意所述滿足 nums[i] == nums[j] 且 (i × j) 可以被 k 整除即可求得所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。