给定金额,如何购买最多物品
public static void main(String[] args)
{
int[] price=new int[]{1,22,65,45,7,3,2,1,5,6,9,7};
Map<Integer, List<Integer>> valueIndexMap=new HashMap();
for(int i=0;i<price.length;i++)
{
List<Integer> indexList=valueIndexMap.get(price[i]);
if(indexList==null)
{
indexList=new ArrayList<Integer>();
valueIndexMap.put(price[i],indexList);
}
indexList.add(i);
}
Arrays.sort(price);
int maxPrice =100;
int buyCnt=0;
List<Integer> buyIndex=new ArrayList();
for(int i=0;i<price.length;i++)
{
if(maxPrice<price[i])
{
break;
}
buyCnt++;
maxPrice-=price[i];
buyIndex.add(valueIndexMap.get(price[i]).remove(0));
}
System.out.println("buyCnt="+buyCnt+";buyIndex="+buyIndex);
}
全部评论