求乙個陣列中指定個數的值的組合種類

2021-09-23 14:02:19 字數 760 閱讀 5793

如:從[1,2,3,4,5,6,7,8,9] 中取出4個數,列印出各種可能的組合:

思路:1.先取出其中乙個數

2.從剩下的陣列中取出來三個數可能的組合,加上之前取出的數,就是包含取出數的可能的組合

3.從剩下的陣列中取出四個數,組成不包含第一次取出數的可能的組合。

4.迴圈1,2,3步驟,得到最終陣列

$arr = [

1 => ['total'=>5,'id'=>111],

2 => ['total'=>4,'id'=>112],

3 => ['total'=>5,'id'=>113],

4 => ['total'=>8,'id'=>114],

5 => ['total'=>3,'id'=>115],

6 => ['total'=>7,'id'=>116],

];$m = 4;

function aaa($arr, $m)

return $re;

}if ($m==count($arr))

$temp = array_pop($arr);

$temp_arr = aaa($arr, $m-1);

foreach ($temp_arr as $ta)

$temp_arr = aaa($arr, $m);

foreach ($temp_arr as $ta)

return $re;

}var_dump(aaa($arr, $k));

求乙個陣列的子集

該題是力扣上面的乙個題,感覺思路不錯就摘抄下來做個筆記。以後準備定期耍上面的題來提高一下自己的演算法基礎。題目描述如下 給定一組不含重複元素的正數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,...

求乙個陣列的最大k個數(java)

問題描述 求乙個陣列的最大k個數,如,的最大三個數應該是,8,9,11 問題分析 1.解法一 最直觀的做法是將陣列從大到小排序,然後選出其中最大的k個數,但是這樣的解法,複雜度是o logn n 但是有時候並不需要排序,用簡單的選擇排序,或者是氣泡排序,那麼就k輪的交換或者是選擇,就可以得出結論,複...

求乙個數約數的個數

求約數的個數 計算乙個整數的約數個數 輸入格式 輸入乙個整數 輸出格式 輸出一行,為輸入整數的約數的個數 樣例輸入 10 樣例輸出 4ac import math number int raw input count 0 sqrt float math.sqrt number if number s...