国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[LeetCode 77] Combinations(精妙的迭代)

2019-11-09 21:09:26
字體:
來源:轉載
供稿:網友

題目內容

77.Combinations 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.該數自增1。 2.若元素大于n,指針前移一位,回循環體頭部; 若已是末尾元素,記錄該組合; 否則把該元素的值賦給后一元素。指針后退一位返回循環體頭部。

實際模擬后發現該過程可視為從首元素為1,公差為1的等差數列的迭代過程。 從末尾元素開始對每個元素進行遞增,若每數均小于n且成功到達末尾元素,則記錄組合;若超出范圍則將指針后退,對前一元素進行遞增。 根據歸納法可知該方法可以不遺漏不重復地記錄所有合法組合。

代碼示例

class Solution {public: vector<vector<int>> combine(int n, int k) { vector<vector<int>> res; vector<int> temp(k,0); int i=0; while(i>=0) { temp[i]++; if(temp[i]>n) i--; else if(i==k-1) res.push_back(temp) ; else { i++; temp[i]=temp[i-1]; } } return res; }};
上一篇:QTSServerInterface

下一篇:最大子數組問題

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石狮市| 元朗区| 大化| 收藏| 大田县| 盐津县| 台北县| 确山县| 临桂县| 濮阳县| 黄梅县| 安仁县| 新和县| 澄迈县| 乌拉特前旗| 石嘴山市| 铁岭市| 台山市| 云南省| 江川县| 老河口市| 莒南县| 信丰县| 东丽区| 绥德县| 佛冈县| 广宗县| 西充县| 苏尼特左旗| 定日县| 乌拉特后旗| 衡山县| 巴东县| 颍上县| 沁阳市| 巴林右旗| 兴城市| 钟祥市| 潞西市| 库车县| 道孚县|