日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Combinations

發布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Combinations 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Combinations

?Total Accepted:?10949?Total Submissions:?36507My Submissions

Given two integers?n?and?k, return all possible combinations of?k?numbers out of 1 ...?n.

For example,
If?n?= 4 and?k?= 2, a solution is:

[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ]


解法1。2: DFS遍歷全部組合。注意推斷當前cur的長度以及當前能夠值的狀態能否夠繼續
解法3,4:用next(prev) permutation來實現獲取全部組合
解法5: 類似非遞歸的DFS(或者能夠想象成為整數逐步加1進位,遍歷全部可能數值)來編譯狀態
解法6:長度從1到k,每次把全部長度為i- 1的已有組合遍歷一次。取全部可能的組合形成長度為i的全部組合(題目要求從小到大。這也為我們這樣實現提供的根據)



class Solution { public:vector<vector<int> > combine(int n, int k) {// IMPORTANT: Please reset any member data you declared, as// the same Solution instance will be reused for each test case.vector<vector<int>> ret;if (k < 1 || k > n) return ret;// 1/*vector<int> cur;genCombination1(ret, cur, n, k, 1);*/// 2/*vector<int> cur;genCombination2(ret, cur, n, k, 1);*/// 3/*vector<int> flag(n, 0);for (int i = 0; i < k; ++i) {flag[i] = 1;}do {ret.push_back(vector<int>());auto it = back_inserter(ret.back());for (int i = 0; i < n; ++i) {if (flag[i] == 1) it = i + 1;}//} while (prev_permutation(flag.begin(), flag.end()));} while (m_prev_permutation(flag));*/// 4/*vector<int> flag(n, 0);for (int i = n - k; i < n; ++i) {flag[i] = 1;}do {ret.push_back(vector<int>());auto it = back_inserter(ret.back());for (int i = 0; i < n; ++i) {if (flag[i] == 1) it = i + 1;}//} while (next_permutation(flag.begin(), flag.end()));} while (m_next_permutation(flag));*/// 5/*vector<int> lo(k, 0), hi(k, 0);for (int i = 1; i <= k; ++i) {lo[i - 1] = i;hi[i - 1] = n - k + i;}while (true) {ret.push_back(lo);int cpos = k - 1;while (cpos >= 0) {if (lo[cpos] < hi[cpos]) {++lo[cpos];for (int i = cpos + 1; i < k; ++i) {lo[i] = lo[i - 1] + 1;}break;}--cpos;}if (cpos < 0) break;}*/// 6for (int i = 1; i <= n - k + 1; ++i) {ret.push_back(vector<int>(1, i));}for (int i = 2; i <= k; ++i) {int cnt = ret.size();for (int j = 0; j < cnt; ++j) {int cval = ret[j].back();int lastval = n - k + i;for (int t = cval + 1; t < lastval; ++t) {ret.push_back(ret[j]);ret.back().push_back(t);}ret[j].push_back(lastval);}}return ret;}private:void genCombination1(vector<vector<int>> &ret, vector<int> &cur, int n, int k, int cval) {if (n - cval + 1 < k - cur.size()) return;if (cur.size() == k) {ret.push_back(cur);return;}cur.push_back(cval);genCombination1(ret, cur, n, k, cval + 1);cur.pop_back();genCombination1(ret, cur, n, k, cval + 1);}void genCombination2(vector<vector<int>> &ret, vector<int> &cur, int n, int k, int cval) {int cnt = cur.size();if (cnt == k) {ret.push_back(cur);return;}for (int i = cval; i <= n - k + cnt + 1; ++i) {cur.push_back(i);genCombination2(ret, cur, n, k, i + 1);cur.pop_back();}}bool m_prev_permutation(vector<int> &f) {for (int i = f.size() - 1; i > 0; --i) {if (f[i] >= f[i - 1]) continue;int spos = i;for (int j = spos + 1; j < f.size(); ++j) {if (f[j] >= f[spos] && f[j] < f[i - 1])spos = j;}swap(f[spos], f[i - 1]);reverse(f.begin() + i, f.end());return true;}return false;}bool m_next_permutation(vector<int> &f) {for (int i = f.size() - 1; i > 0; --i) {if (f[i] <= f[i - 1]) continue;int spos = i;for (int j = spos + 1; j < f.size(); ++j) {if (f[j] > f[i - 1] && f[j] <= f[spos])spos = j;}swap(f[spos], f[i - 1]);reverse(f.begin() + i, f.end());return true;}return false;} };

總結

以上是生活随笔為你收集整理的Combinations的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品久久9 | 一级色网站 | 午夜国产一区二区 | 国产欧美日韩中文字幕 | 国产女主播一区二区 | 亚洲精品国产99 | 国产一国产精品一级毛片 | 尤物视频在线观看国产 | 男女插插插网站 | 性欧美videos另类hd | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 人妻无码一区二区三区久久 | 中国黄色在线视频 | 午夜三级福利 | 狠狠撸在线视频 | 亚洲成人av在线播放 | www.一区二区 | 香蕉福利视频 | 91精品国产高清一区二区三密臀 | 久久99精品久久久水蜜桃 | 精品黑人一区二区三区在线观看 | 91精品人妻一区二区三区蜜桃欧美 | 中文写幕一区二区三区免费观成熟 | 国产男女av | 日韩精品视频免费在线观看 | 国产精品无码成人网站视频 | 国产专区一区 | 中文字幕亚洲综合 | 99国产精品一区二区 | 一区二区三区免费观看 | 欧美xxxxx牲另类人与 | 国产精品自拍第一页 | 99精品一级欧美片免费播放 | 天堂网a | 美女视频黄频视频大全 | 野花av | 麻豆欧美 | 视频网站在线观看18 | 无码少妇一区二区 | 一级黄色a毛片 | 日韩欧美精品 | 欧美日韩一区二区三区四区五区六区 | youjizz麻豆| 一级大片视频 | 9l蝌蚪porny中文自拍 | 日韩精品一区二区三区在线 | 在线看黄网站 | 中文字幕婷婷 | 日韩中文字幕一区 | 好男人www日本 | 日韩中出 | 色av吧| 69天堂| 色狠狠av老熟女 | 女女高潮h冰块play失禁百合 | 性饥渴的农村熟妇 | 日韩福利视频在线观看 | 国产免费成人 | 6090伦理| 国产精品一二三四五 | jzzjzzjzz亚洲成熟少妇 | 成人av动漫 | 久操青青| 欧美特级黄色大片 | 97人妻精品一区二区三区视频 | 女同av网站| 国产精品国产精品国产专区不卡 | 中文字幕一区二区三区手机版 | 日韩亚洲欧美一区 | 老司机福利院 | av在线资源站 | 国产不卡在线视频 | 中文字幕亚洲一区二区三区五十路 | 在线观看免费观看在线 | 国产伦精品一区二区三区视频黑人 | ts人妖在线观看 | 四虎网址在线观看 | 国产中文字幕一区二区 | 色日韩| 国产亚洲欧美在线视频 | 国产又黄又猛的视频 | 亚洲欧美日韩精品久久 | 伊人91视频| 成人av电影天堂 | 欧美xxxxbbbb| 一级作爱视频 | 日本波多野结衣在线 | 午夜毛片在线观看 | 欧美亚洲国产一区二区三区 | 国产欧美亚洲一区二区 | 亚州一区二区 | 日韩狠狠 | 国产精品999在线观看 | 粗喘呻吟撞击猛烈疯狂 | 久久久夜夜夜 | 午夜视频在线观看视频 | 中文字幕+乱码+中文字幕明步 | 94av视频| 久久精品—区二区三区舞蹈 |