Combinations(带for循环的DFS)

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],
]
class Solution {
private:
    vector<vector<int>> res;
    int myn;
    int num;
public:
    void tra(int loc,int start,vector<int> temp){
        if(loc==num+1)
        {
            res.push_back(temp);
            return;
        }
        for (int i=start;i<=myn;++i)
        {
            temp.push_back(i);
            tra(loc+1,i+1,temp);
            temp.erase(temp.end()-1);
        }
    }
    vector<vector<int>> combine(int n, int k) {
        myn=n;
        num=k;
        vector<int> temp;
        tra(1,1,temp);
        return res;
    }
};
				
时间: 2024-09-25 15:58:48

Combinations(带for循环的DFS)的相关文章

Letter Combinations of a Phone Number(带for循环的DFS,递归总结)

Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below. Input:Digit string "23" Output: ["ad", "ae", &q

Android开发实践:自定义带消息循环(Looper)的工作线程

上一篇文章提到了Android系统的UI线程是一种带消息循环(Looper)机制的线程,同时Android也提供了封装有消息循环(Looper)的HandlerThread类,这种线程,可以绑定Handler()对象,并通过Handler的sendMessage()函数向线程发送消息,通过handleMessage()函数,处理线程接收到的消息.这么说比较抽象,那么,本文就利用基础的Java类库,实现一个带消息循环(Looper)的线程,以帮助初学者理解这样一个Looper到底是怎么工作的. 1

【转】Android开发实践:自定义带消息循环(Looper)的工作线程

http://ticktick.blog.51cto.com/823160/1565272 上一篇文章提到了Android系统的UI线程是一种带消息循环(Looper)机制的线程,同时Android也提供了封装有消息循环(Looper)的HandlerThread类,这种线程,可以绑定Handler()对象,并通过Handler的sendMessage()函数向线程发送消息,通过handleMessage()函数,处理线程接收到的消息.这么说比较抽象,那么,本文就利用基础的Java类库,实现一个

Leetcode 17 Letter Combinations of a Phone Number - DFS思想

Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below. Input:Digit string "23" Output: ["ad", "ae", &q

在不开启事件循环的线程中使用QTimer(QThread::run函数自带事件循环,在构造函数里创建线程,是一种很有意思的线程用法) good

引入 QTimer是Qt自带的定时器类,QTimer运行时是依赖于事件循环的,简单来说,在一个不开启事件循环(未调用exec() )的线程中,QTimer是无法使用的.通过分析Qt源码可发现,调用QTimer::start()后仅仅是在系统的定时器向量表中添加了一个定时器对象,但定时器并没有真正开启.定时器的开启需要通过processEvent()开始的一系列调用后才会真正得开启,这个过程中会处理定时器向量表中所有的定时器对象.那么实际exec()中也是在不断地调用processEvent()方

ping IP 带时间戳循环显示并写入日志

在工作中,判断网络是否通畅,首选命令就是ping,但有时候我们需要持续ping一个或多个地址时,需要加 -t 即可,但有时候需要在ping的时候加入时间戳并把ping记录写入到日志里面,方法如下: windos版: 首选把下面代码复制到文本里去,然后把扩展名更改为.bat @echo off @echo.---------------------------------------------------------- @echo. 一 Author: aゞ锦衣卫 @echo. 键 Remind

Word Search(深度搜索DFS,参考)

Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically neighboring. The same letter cell may not be us

iOS 循环利用的注意事项

1.UI控件自带的循环利用 UITableView,UICollectionView,本身自带循环利用,通过标识符在缓存池中找cell 需要注意的地方:给cell传模型数据的时,要做到全覆盖,如果只是cell.Text1 = dataText1,那么新显示的cell的Image和Text2将会显示旧数据 2.在UIScrollView上做循环利用 思路: a.取得待展示的数据个数count1,取得当前已初始化的控件个数count2 (假设是UIView,并且需要有1个数组装着UIView,该数组

从Handler+Message+Looper源代码带你分析Android系统的消息处理机制

PS一句:不得不说CSDN同步做的非常烂.还得我花了近1个小时恢复这篇博客. 引言 [转载请注明出处:http://blog.csdn.net/feiduclear_up CSDN 废墟的树] 作为Android开发人员,相信非常多人都使用过Android的Handler类来处理异步任务. 那么Handler类是怎么构成一个异步任务处理机制的呢?这篇 博客带你从源代码分析Android的消息循环处理机制.便于深入的理解. 这里不得不从"一个Bug引发的思考"開始研究Android的消息