/**
* 给定一个正数包含的数组,和目标数aim,求是否可以任意选择多个数组成aim?
* @author superman
*
*/
public class Main {
/**
* 主函数调用进行优化
* @param arr
* @param aim
* @return
*/
public static boolean isGet(int[]arr,int aim) {
if(arr==null||arr.length==0) {
return false;
}
int sum=0;
for(int i:arr) {
sum+=i;
}
if(sum<aim) {
return false;
}
return isSum(arr,0,0,aim);
}
//递归函数
public static boolean isSum(int[]arr,int i,int sum,int aim) {
if(i==arr.length) {
return sum==aim;
}
return isSum(arr,i+1,sum,aim)||isSum(arr,i+1,sum+arr[i],aim);
}
public static void main(String[] args) {
int[]arr= {1,3,5,7,9,10};
System.out.println(isGet(arr,8));
}
}
给定一个正数包含的数组,和目标数aim,求是否可以任意选择多个数组成aim
最新推荐文章于 2022-05-23 19:49:54 发布