題目描述:
給定乙個正整數陣列 nums。
找出該陣列內乘積小於 k 的連續的子陣列的個數。
示例 1:
輸入: nums = [10,5,2,6], k = 100
輸出: 8
解釋: 8個乘積小於100的子陣列分別為: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。
需要注意的是 [10,5,2] 並不是乘積小於100的子陣列。
說明:
0 < nums.length <= 50000
0 < nums[i] < 1000
0 <= k < 10^6
方法1:雙指標滑動視窗
主要思路:
(1)每次移動乙個right指標,然後判斷left指標的位置,使left指標位於能夠使子陣列的積小於k的最小值,則此時從該left到right之間的任意元素到right位置的區域性陣列積都是滿足要求的結果,數量為right-left;
(2)為了避免越界,加限制元素leftsolution
count+
=right-left;
//統計上當前的範圍的數量
}return count;}}
;
子陣列乘積小於k
法一 暴力解法 def solution1 alist count 0for i in range len alist product 1for j in range i,len alist product alist j if product k break count 1return count...
乘積小於k的子陣列
給定乙個正整數陣列 nums。找出該陣列內乘積小於 k 的連續的子陣列的個數。輸入 nums 10,5,2,6 k 100 輸出 8 解釋 8個乘積小於100的子陣列分別為 10 5 2 6 10,5 5,2 2,6 5,2,6 需要注意的是 10,5,2 並不是乘積小於100的子陣列。說明 定義兩...
陣列演算法 乘積小於K的子區間個數
題目 現給出乙個元素全為正整數的陣列nums和乙個正數k,計算nums裡面元素乘積小於k的子區間個數。leetcode 713 例子 輸入 nums 10,5,2,6 k 100 輸出 8 解釋 8個子區間分別是 10 5 2 6 10,5 5,2 2,6 5,2,6 注意到 10,5,2 的乘積是...