京东笔试 购物单
大神指点一下购物单的那个题
我的代码如下,但是提示错误,求指点
package com.newCoder; import java.util.*; /** * Created by monian on 2016/9/5. */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] moneyArray; while (sc.hasNext()) { int n = sc.nextInt(); int m = sc.nextInt(); if (n < m) { // 如果数据不满足,则输出0并进入下一个用例判断 System.out.print("0 0"); continue; } moneyArray = new int[n]; for (int i = 0; i < n; i++) { moneyArray[i] = sc.nextInt(); } Arrays.sort(moneyArray); Map<String, Integer> timesMap = new HashMap<>(); String thing; Integer times; for (int i = 0; i < m; i++) { thing = sc.next(); times = timesMap.get(thing); if (times == null) { times = 0; } times++; timesMap.put(thing, times); } int[] timesArray = new int[timesMap.size()]; int i = 0; for (Map.Entry<String, Integer> entry : timesMap.entrySet()) { timesArray[i++] = entry.getValue(); } Arrays.sort(timesArray); int min = judgeMin(moneyArray, timesArray); int max = judgeMax(moneyArray, timesArray); System.out.println(min + " " + max); } } // 计算最高价格 private static int judgeMin(int[] moneyArray, int[] timesArray) { int result = 0; int length = moneyArray.length; for (int i = 0; i < timesArray.length; i++) { result += timesArray[i] * moneyArray[length-1-i]; } return result; } // 计算出最低的价格 private static int judgeMax(int[] moneyArray, int[] timesArray) { int result = 0; for (int i = 0; i < timesArray.length; i++) { result += timesArray[i] * moneyArray[i]; } return result; } }