zoukankan      html  css  js  c++  java
  • 【leetcode】48. 全排列 2

    int cmp(const void* a, const void* b){
        return *(int*)a - *(int*)b;
    }
    void recursion(int* nums, int numsSize, int* returnSize, int* returnColumnSizes, int cnt, int** arr, int* temp, int* hash){
        if (cnt == numsSize){
            arr[(*returnSize)] = (int*)calloc(numsSize + 1, sizeof(int));
            memcpy(arr[(*returnSize)], temp, cnt*sizeof(int));
            returnColumnSizes[(*returnSize)++] = cnt;
            return;
        }
        for (int i = 0; i<numsSize; i++){
            if (hash[i]) continue;
            hash[i]++;
            temp[cnt] = nums[i];
            recursion(nums, numsSize, returnSize, returnColumnSizes, cnt + 1, arr, temp, hash);
            hash[i]--;
            while (i != numsSize-1 && nums[i] == nums[i + 1])
                i++;
        }
    }
    int** permuteUnique(int* nums, int numsSize, int* returnSize, int** returnColumnSizes){
        int** arr = (int**)calloc(sizeof(int*), 1000);
        int* hash = (int*)calloc(sizeof(int), numsSize);
        *returnSize = 0;
        *returnColumnSizes = (int*)calloc(sizeof(int), 1000);
        int temp[1000] = { 0 };
        qsort(nums, numsSize, sizeof(int), cmp);
        recursion(nums, numsSize, returnSize, *returnColumnSizes, 0, arr, temp, hash);
        return arr;
    }
  • 相关阅读:
    Thinkphp各种方法知识图谱
    Yii2.0学习笔记:创建登录表单
    Yii2.0学习笔记:第一个页面Saying Hello
    4.1
    4
    flask(3.0)
    flask(2.0)
    flask(1.1)装饰器装饰多个视图函数出现的问题
    flask(1.0)
    Flask之上下文管理机制
  • 原文地址:https://www.cnblogs.com/ganxiang/p/14111468.html
Copyright © 2011-2022 走看看