求集合子集 C 實現

2021-09-23 06:15:13 字數 648 閱讀 4448

思路:

int arr = ;

遞迴遍歷整個陣列,遍歷到第0個位置,我們就求出含有0的所有子集,遍歷到第1個位置,我們就求出含有1不含0的所有子集,依次類推,遍歷到第3個位置,我們求出含有3而不含0 1 2 的所有子集。

//loc表示當前位置 loc == len為遞迴終止條件

void getallsubset(int* arr, int len, int loc, vector>&res, vectorv)

//2中情況 第一種情況 拿當前元素 第二種 不拿當前元素

getallsubset(arr, len, loc + 1, res, v);

v.push_back(arr[loc]);

getallsubset(arr, len, loc + 1, res, v);

}int main()

; vector>res;

for (int i = 0; i < 5; i++)

//以下為輸出結果用

for(int i = 0; i < res.size(); i++)

cout << endl;

} cout << res.size();

return 0;

}

求集合子集問題

src是源資料集合,currentindex是在源集合裡的當前下標,length為源集合的大小,dest是結果集合,num是結果集合的元素個數,初始化時,結果集合要和源集合的個數相等.void match int src,intcurrentindex,intlength,int dest,intn...

集合子集問題

集合子集問題 給的乙個集合按元素個數列出所有列出所有集合子集,如 0個元素 1個元素 2個元素 3個元素 輸出 方法 採用乙個二進位制數列表示解,如 000 代表 100 代表 演算法 1 乙個字串陣列儲存解。2 用乙個整形陣列儲存不同元素個數解應反正字串陣列中得位置。include include...

排列 組合 子集合

1.陣列中元素的全排列 lintcode 思路 1.對陣列進行排序 2.列舉每乙個位置上選擇什麼數字 3.跳過重複的元素 class solution for int i 0 i n i vector int permuteunique vector s 2.陣列中元素的組合 思路 列舉每個數字選擇...