[LintCode] -- Permutations

说两件事

  • 第一件 这篇文章是补昨天的。。。
  • 第二件 题解换风格。都是看过题和数据并且思索了一番才来百度的,所以根本没必要再放题目和模板上去了,以后直接思路和代码。

  • 大概思路

    这是一个全排序的题,所以可以用DFS深搜树来解决,很简单。

  • 代码

    class Solution {
    public:
      /*
       * @param nums: A list of integers.
       * @return: A list of permutations.
       */
    
      vector<vector<int>> permute(vector<int> &nums) {
          // write your code here
          vector<vector<int>> so;
          fullarrange(nums, nums.size(), 0, so);
          return so;
      }
    
      void swap(int &a, int &b){
         int t = a;
         a = b;
         b = t;
       }
    
      void fullarrange(vector<int> &nums, int size, int n, vector<vector<int>> &so){
         if(n == size){
           so.push_back(nums);
           return;
         }
         for(int i=n; i<size; i++){
           swap(nums[i], nums[n]);
           fullarrange(nums, size, n+1, so);
           swap(nums[i], nums[n]);
         }
       }
    };
  • 题目链接:https://www.lintcode.com/problem/permutations/description

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值