百度编程 兼职题目。
2015-09-12 22:14
337 查看
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 ; 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); } }
相关文章推荐
- 【英语】Bingo口语笔记(78) - let系列
- Delphi调用C#写的webservice
- c++基本数据类型基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:
- java基础--向上/向下转型
- Java 运算符优先级以及一些小题
- 【php】php自带的那些函数和变量小结 - 1
- C语言简单进程
- Coursera-An Introduction to Interactive Programming in Python (Part 1)-Mini-project #4 —"Pong"
- 安装rvm(ruby version management)
- C++11 并发指南二(std::thread 详解)
- C++_队列的两种实现方法
- 《head first python》——定制数据对象
- java设计模式第7弹--观察者模式
- 使用IDEA编译spark 1.5并运行example的代码
- Eclipse下安装keil插件和导入keil工程教程
- tp实例化一个基础功能(供应商)
- C语言的中断信号
- Eclipse遇到Initializing Java Tooling终极解决办法
- java web学习心得与总结(四)——servlet技术
- Effective C++ 条款49 了解new handler的行为