首页 > 其他分享 >【LeeCode】M选N

【LeeCode】M选N

时间:2022-11-24 23:01:59浏览次数:69  
标签:int System LeeCode static new mGetN public


【题目描述】

M选N组合算法, 有m长度的数组,从中随机选出n个,一般m远大于n


【示例】

例如求5中选3的组合:

1,2,3     1,2,4      1,3,4    2,3,4     1,2,5     1,3,5    2,3,5


【代码1】

public class Solution {
public static void main(String[] args) {
// M选N的算法
int m = 5;
int n = 3;
int[] a = new int[m];
int[] b = new int[n];
for(int i = 0; i < m; i++){
a[i] = i + 1; // a数组存储m对应的数字
}
mGetN(m, n, a, b);
}

private static void mGetN(int m, int n, int[] a, int[] b) {

for(int i = n; i <= m; i++) {
b[n - 1] = i - 1;
if (n > 1) {
mGetN(i - 1, n - 1, a, b); // 这里是 i-1和n-1, 因为i是变量
} else {
for(int j = 0; j < b.length; j++){
System.out.printf("%d ", a[b[j]]);
}
System.out.println();
}
}
}
}


【代码2】

学习参考:​​https://blog.51cto.com/u_13184837/2409923​


标签:int,System,LeeCode,static,new,mGetN,public
From: https://blog.51cto.com/u_13682316/5885154

相关文章

  • LeeCode 319周赛复盘
    T1:温度转换思路:模拟publicdouble[]convertTemperature(doublecelsius){returnnewdouble[]{celsius+273.15,celsius*1.80+32.00};}T2:最小公倍数......
  • leecode-两个数组的交集
      解答:class Solution {    public int[] intersection(int[] nums1, int[] nums2) {        if (nums1 == null || nums1.length == ......
  • LeeCode 318周赛复盘
    T1:对数组执行操作思路:模拟publicint[]applyOperations(int[]nums){intn=nums.length;for(inti=0;i<n-1;++i){if(nums[i]==nums[i+1......
  • LeeCode 317周赛复盘
    T1:可被3整数的偶数的平均值思路:数组遍历被3整数的偶数\(\Leftrightarrow\)被6整数的数publicintaverageValue(int[]nums){intsum=0;intcount=0;......
  • 【LeeCode】字符串的全排列
    【题目描述】输入字符串str,返回str的字符的全排序【示例】输入:qwe输出:qweqewewqeqwwqeweq注意:如果输入的是n个相同的字符,那么也就只有1种排列组合【代码】list:保留......
  • 【LeeCode】字符串的排列
    【题目描述】给你两个字符串 ​​s1​​​ 和 ​​s2​​​ ,写一个函数来判断 ​​s2​​​ 是否包含 ​​s1​​ 的排列。如果是,返回 ​​true​​​ ;否则,返回 ......
  • 【LeeCode】汇总
    ​​【LeeCode】排序算法​​​​【LeeCode】颜色分类​​​​【LeeCode】三数之和​​......
  • 【LeeCode】三数之和
    【题目描述】给你一个整数数组 ​​nums​​​ ,判断是否存在三元组 ​​[nums[i],nums[j],nums[k]]​​​ 满足 ​​i!=j​​​、​​i!=k​​​ 且 ​​j!=......
  • LeeCode 316周赛复盘
    T1:判断两个事件是否存在冲突思路:判断两个区间是否有交集publicbooleanhaveConflict(String[]event1,String[]event2){//比较Unicode字符,使用compareTo函......
  • Leecode 111.二叉树的最小深度
    /**Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*......