为什么会堆栈溢出啊,哭唧唧,没找到问题==
class Solution {
public int shoppingOffers(List<Integer> price, List<List<Integer>> special, List<Integer> needs) {
return helper( price , special , needs , 0 );
}
private int helper( List<Integer> price, List<List<Integer>> special, List<Integer> needs , int pos ){
int local_min = direct( price , needs );
int si = special.size();
for( int i = pos ; i < si ; i ++ ){
List<Integer> offer = special.get(i);
List<Integer> tmp = new ArrayList<>();
for( int j = 0 ; j < si ; j ++ ){
if( offer.get( j ) > needs.get( j )){
tmp = null;
break;
}
tmp.add( needs.get(j) - offer.get(j));
}
if( tmp != null )
local_min = Math.min( local_min , offer.get( offer.size() - 1 ) + helper( price , special , tmp , i ));
}
return local_min;
}
private int direct( List<Integer> price , List<Integer> needs){
int siz = needs.size();
int di = 0;
for( int i = 0 ; i < siz ; i ++ ){
di += price.get( i ) * needs.get( i );
}
return di;
}
}