本文主要是介绍1029. 两地调度2611. 老鼠和奶酪----贪心,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
class Solution {// 假设所有奶酪都给老鼠2吃, 再从中选出k块转而给老鼠1吃
// 假设i号奶酪转而给老鼠1吃, 那么分数会增加r1[i]-r2[i], 这个差值可正可负
// 想要分数最大: 差值最大的k块奶酪给老鼠1吃, 剩下的仍给老鼠2吃public int miceAndCheese(int[] reward1, int[] reward2, int k) {int n = reward1.length;Integer[] diff = new Integer[n];int res = 0;for(int i=0;i<n;i++){diff[i] = reward1[i]-reward2[i];res += reward2[i];}//对diff进行排序降序Arrays.sort(diff, (a, b) -> b - a);for(int i=0;i<k;i++){res += diff[i];}return res;}
}
class Solution {//都先去b城市,再跳出n个人去a城市public int twoCitySchedCost(int[][] costs) {int n = costs.length;Integer[] diff = new Integer[n];int res = 0;for(int i=0;i<n;i++){diff[i] = costs[i][0]-costs[i][1];res+=costs[i][1];}Arrays.sort(diff);for(int i=0;i<n/2;i++){res+=diff[i];}return res;}
}
这篇关于1029. 两地调度2611. 老鼠和奶酪----贪心的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!