您的位置:首页 > 其它

滴滴2017校招算法工程师笔试题--吃饭问题

2016-09-07 14:49 423 查看
import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);while (scan.hasNext()) {int n = scan.nextInt();int m = scan.nextInt();ArrayList<Integer> desk = new ArrayList<Integer>();for (int i = 0; i < n; i++) {desk.add(scan.nextInt());}Collections.sort(desk);ArrayList<Group> customer = new ArrayList<Group>();for (int i = 0; i < m; i++) {Group tem = new Group();tem.setN(scan.nextInt());tem.setC(scan.nextInt());customer.add(tem);}Collections.sort(customer, new Comp().comparator);int res = 0;for(int i = 0; i < m; i++){int loc = n;if( desk.isEmpty()){break;}for(int j = desk.size()-1; j >= 0; j--){if( desk.get(j) < customer.get(i).num){break;}else{loc = j;}}if( loc != n){res += customer.get(i).cost;//					System.out.println(i+ "     " + customer.get(i).cost + "......" + loc);desk.remove(loc);}}System.out.println(res);}scan.close();}}class Group {int num;int cost;public void setN(int n) {this.num = n;}public void setC(int c) {this.cost = c;}}class Comp{Comparator<Group> comparator = new Comparator<Group>(){public int compare(Group g1,Group g2){if( g1.cost < g2.cost){return 1;}else if( g1.cost > g2.cost){return -1;}else{return 0;}}};}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: