題目連結:
題目意譯:
給定一個整數陣列 nums 以及一整數 k,回傳 nums 中滿足當中元素之最大公因數為 k 的子陣列之數量。
一個子陣列為一陣列中一個非空連續元素序列。
一陣列的最大公因數為可以整除陣列中所有元素的最大整數。
限制:
1 ≦ nums.length ≦ 1000
1 ≦ nums[i], k ≦ 10 ^ 9
範例測資:
範例 1:
輸入: nums = [9,3,1,2,6,3], k = 3
輸出: 4
解釋: 以下為 nums 中的子陣列,其中 3 為這些子陣列中所有元素的最大公因數:
- [9,3,1,2,6,3]
- [9,3,1,2,6,3]
- [9,3,1,2,6,3]
- [9,3,1,2,6,3]
範例 2:
輸入: nums = [4], k = 7
輸出: 0
解釋: 不存在任何 nums 的子陣列,其中 7 為這些子陣列中所有元素的最大公因數。
解題思維:
由於 nums 的長度最大也才 1000,因此直接窮舉出所有子陣列(即所有可能的開頭與結尾)並檢查有多少子陣列的最大公因數為 k 即可。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。