zoukankan      html  css  js  c++  java
  • Given an array of size n, find all the possible sub set of the array of size k

    Given an array of size n, find all the possible sub set of the array of size k(all the subsets must be of size k).

    Q:

    给一个大小为n的数组,输出其中k个数字的组合。

    A:

    void subarray(int arr[], int t[], int n, int index, int k, int kIndex) 
    {
    int i;

    if (n == 0)
    return;

    if (kIndex == k) { // 说明已经取到了k个数字,打印出来
    for (i = 0; i < kIndex; i++)
    printf("%d ", t[i]);
    printf("\n");
    return;
    }

    if (n - index < k - kIndex)
    return;

    t[kIndex] = arr[index];
    subarray(arr, t, n, index + 1, k, kIndex + 1); // 已经取了当前的数字,再继续取;

    subarray(arr, t, n, index + 1, k, kIndex); // 因为k <= n,所以存在有无法取到的数字,该调用则是忽略前面的数字,从后面的数字开始取
    }

    for example: 

        int att1[5] = {1,2,3,4,5};
    int att3[5] = {};
    subarray(att1, att3, 5, 0, 4, 0);





  • 相关阅读:
    JAVA窗口程序实例一
    内存容量出现异常的解决办法
    Android Studio 2.0使用指南
    Android 开机自启服务
    Android 图形总结
    今日课堂总结
    JSON
    GET方法和POST方法
    ajax的简单介绍
    网页-豌豆上的公主
  • 原文地址:https://www.cnblogs.com/yayagamer/p/2293330.html
Copyright © 2011-2022 走看看