713 乘積小於K的子陣列

2021-10-08 23:26:51 字數 688 閱讀 9991

題目描述:

給定乙個正整數陣列 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 的乘積是...