質數乘積 LintCode

2021-08-18 16:19:47 字數 807 閱讀 8970

給定乙個無重複的質數陣列arr,每個質數最多使用一次,求所有無重複的乘積並從小到大排序。

注意事項

2<= |arr|

<= 9

2<= arr[i] <= 23

樣例

給出 arr = [2,3], 返回 [6]。

解釋:

2*3=6。

給出 arr = [2,3,5], 返回 [6,10,15,30]。

解釋:

2*3=6, 2

*5=10, 3

*5=15, 2

*3*5=30。

思路

用arr的前兩個元素初始化res,每增加乙個元素arr[i],在res中新增arr中i位置之前的元素與arr[i]的乘積,再新增原res中所有元素與arr[i]的乘積。

例如

開始res==

新增5,=,=

res=

新增7,=,=

res=

#ifndef c896_h

#define c896_h

#include

#include

#include

#include

using

namespace

std;

class solution

sort(res.begin(), res.end());

return res;

}};#endif

lintcode 四數乘積問題

給定乙個長度為n的陣列a和乙個正整數k,從陣列中選擇四個數,要求四個數的乘積小於等於k,求方案總數。陣列中可能出現多個值相同的數。每次選擇四個數時,同乙個數不能被選擇兩次,而值相同的兩個不同的數可以同時被選。1 leq n leq 10 31 n 10 3 1 leq a i leq 10 6 1 ...

lintcode 四數乘積問題

給定乙個長度為n的陣列a和乙個正整數k,從陣列中選擇四個數,要求四個數的乘積小於等於k,求方案總數。陣列中可能出現多個值相同的數。每次選擇四個數時,同乙個數不能被選擇兩次,而值相同的兩個不同的數可以同時被選。1 leq n leq 10 31 n 10 3 1 leq a i leq 10 6 1 ...

LintCode 191 乘積最大子序

找出乙個序列中乘積最大的連續子串行 至少包含乙個數 樣例 比如,序列 2,3,2,4 中乘積最大的子串行為 2,3 其乘積為6。思路 動態規劃,每一步只需要記住其前一步的整數最大值和負數的最小值。因為涉及到正負,所以要儲存最小值和最大值兩種情況,因為負負得正。最小值的比較包括nums i min n...