百度编程 兼职题目。


Alice 是个手机发烧友,最近新出了一款他非常喜欢的手机,手机价格比较高而她手里的资金不太充裕,所以想要做个兼职赚些钱再买。现在有n芬兼职。




package test; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Scanner; public class Solution { public static void main(String[] args) { int n, m, k; Scanner scanner = new Scanner(System.in); n = scanner.nextInt(); m = scanner.nextInt(); k = scanner.nextInt(); int[] pro = new int[n]; HashMap<Integer, Integer[]> mapvalue = new HashMap<Integer, Integer[]>(); int[] div = new int[n * n * n]; int counti = 0; for (int i = 0; i < pro.length; i++) { pro[i] = scanner.nextInt(); } HashSet<Integer> set = new HashSet<Integer>(); for (int i = 0; i < pro.length - m + 1; i++) { setValue(pro, i, m, set, mapvalue); } int[] values = new int[set.size()]; int i = 0; Iterator<Integer> it = set.iterator(); while (it.hasNext()) { int tmp = it.next(); System.out.print(" "+tmp); values[i++] = tmp; } System.out.println(); Arrays.sort(values); int sum = 0; int count = 0; int j; for ( j = values.length - 1; j >= 0 && count < k; j--) { if (counti == 00 || donotContaint(values[j], mapvalue, div, counti)) { sum += values[j]; System.out.print(" "+values[j]); count++; Integer [] tmpdate = mapvalue.get(values[j]); for (int l = 0; l < tmpdate.length; l++) { div[counti++] = tmpdate[l]; } } } System.out.println(j); System.out.println("" + sum); } private static boolean donotContaint(int value, HashMap<Integer, Integer[]> mapvalue, int[] div, int counti) { if (counti == 0) { return true; } Integer[] tmpdata = mapvalue.get(value); for (int i = 0; i < tmpdata.length; i++) { int tmp = tmpdata[i]; for (int j = 0; j < counti; j++) { if (tmp == div[j]) { return false; } } } return true; } private static void setValue(int[] pro, int i, int m, HashSet<Integer> set, HashMap<Integer, Integer[]> mapvalue) { int sum = 0; Integer[] child = new Integer[m]; int s = 0; for (int j = i; j < i + m; j++) { sum += pro[j]; child[s++] = pro[j]; } mapvalue.put(sum, child); set.add(sum); } }

  

原文地址:https://www.cnblogs.com/liuchuanwu/p/4803730.html