蓝桥杯常用算法知识点:【递归】m个A与n个B的全排列个数

m个A与n个B的全排列个数

package com.aiqiongdiao;
public class Main {	
	public static int g(int m,int n){
		if(m==0||n==0){    //出口:不断降,总会为0
			return 1;   //为一种情况,m与n之间没有大小约束
		}
		return g(m-1,n)+g(m,n-1); 
	}
	
	public static void main(String[] args) {
		System.out.println(g(3,2));
	}
}















要去n个球中取m区分开来!!也要与n个元素的全排列区分开!


【n个球中取m个】的区别:
1.n个球题中        return f(n-1,m-1) + f(n-1,m);  是模拟出一个不存在的红球,取不取红球端对n都有影响
2.n个球题中   m与n之间有数量的关系, n不能小于m, n==m时返回一种情况(一样存在m减到0)


【n个元素的全排列】的区别:
1.n个元素题中   元素很多,而此题只有2个,元素很多的情况下,只要移动一次就是一种情况
2.n个元素题中   使用的是指定头个元素与第k个元素交换位置。 元素要求:一个循环+一个k指标
for中: f(data,k+1);  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值