首页 > 其他分享 >2611. 老鼠和奶酪

2611. 老鼠和奶酪

时间:2023-06-07 23:46:32浏览次数:58  
标签:老鼠 reward2 2611 reward1 int 奶酪 吃掉

title: 2611. 老鼠和奶酪
tags: 
 - LeetCode
 - 贪心
 - 排序

2023年6月7日23:18:51

目录

2611. 老鼠和奶酪 - 力扣(LeetCode)

有两只老鼠和 n 块不同类型的奶酪,每块奶酪都只能被其中一只老鼠吃掉。

下标为 i 处的奶酪被吃掉的得分为:

如果第一只老鼠吃掉,则得分为 reward1[i] 。
如果第二只老鼠吃掉,则得分为 reward2[i] 。
给你一个正整数数组 reward1 ,一个正整数数组 reward2 ,和一个非负整数 k 。

请你返回第一只老鼠恰好吃掉 k 块奶酪的情况下,最大 得分为多少。

示例 1:

输入:reward1 = [1,1,3,4], reward2 = [4,4,1,1], k = 2
输出:15
解释:这个例子中,第一只老鼠吃掉第 2 和 3 块奶酪(下标从 0 开始),第二只老鼠吃掉第 0 和 1 块奶酪。
总得分为 4 + 4 + 3 + 4 = 15 。
15 是最高得分。
示例 2:

输入:reward1 = [1,1], reward2 = [1,1], k = 2
输出:2
解释:这个例子中,第一只老鼠吃掉第 0 和 1 块奶酪(下标从 0 开始),第二只老鼠不吃任何奶酪。
总得分为 1 + 1 = 2 。
2 是最高得分。

提示:

1 <= n == reward1.length == reward2.length <= 105
1 <= reward1[i], reward2[i] <= 1000
0 <= k <= n

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/mice-and-cheese
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Solution

  1. 思路
    贪心 + 排序

算出差值,取K 个最大值即可

  1. 代码
class Solution {
public:
    int miceAndCheese(vector<int>& reward1, vector<int>& reward2, int k) {
        int ans = 0;
        int n = reward1.size();
        vector<int> diffs(n);

        for (int i = 0; i < n; i++)
        {
            ans += reward2[i];
            diffs[i] = reward1[i] - reward2[i];
        }

        sort(diffs.begin(), diffs.end());
        for (int i = 1; i <=k; i++)
        {
            ans += diffs[n-i];
        }
        return ans;
    }
};
func miceAndCheese(reward1 []int, reward2 []int, k int) int {
    ans := 0
    n := len(reward1)

    diffs := make([]int, n)
    for i:=0; i<n; i++ {
        ans += reward2[i]
        diffs[i] = reward1[i] - reward2[i]
    }

    sort.Ints(diffs)

    for i:=1; i<=k; i++ {
        ans += diffs[n-i]
    }

    return ans
}

标签:老鼠,reward2,2611,reward1,int,奶酪,吃掉
From: https://www.cnblogs.com/fole-del/p/17464902.html

相关文章

  • Leetcode 2611. 老鼠和奶酪
    题目:有两只老鼠和 n 块不同类型的奶酪,每块奶酪都只能被其中一只老鼠吃掉。下标为i 处的奶酪被吃掉的得分为:如果第一只老鼠吃掉,则得分为 reward1[i] 。如果第二只老鼠吃掉,则得分为 reward2[i] 。给你一个正整数数组 reward1 ,一个正整数数组 reward2 ,和一个非负整......
  • 【每日一题】LeetCode 913.猫和老鼠(hard题)
    题目两位玩家分别扮演猫和老鼠,在一张无向图上进行游戏,两人轮流行动。图的形式是:graph[a]是一个列表,由满足ab是图中的一条边的所有节点b组成。老鼠从节点1开始,第一个出发;猫从节点2开始,第二个出发。在节点0处有一个洞。在每个玩家的行动中,他们必须沿着图中与所在当前......
  • 2023.6.7 老鼠和奶酪
    贪心+排序。由于第一只老鼠一定要吃k个奶酪的,为了让答案最大,一定要吃k个收益最大的奶酪。而reward1比reward2大的越多,收益就越多。所有可以按照reward1-reward2进行从大到小的排序,排完序后前k个奶酪由第一个老鼠吃,后面的所有奶酪由第二个老鼠吃,得到的就是最大得分。usestd::......
  • 2611. 老鼠和奶酪
    2611.老鼠和奶酪有两只老鼠和 n 块不同类型的奶酪,每块奶酪都只能被其中一只老鼠吃掉。下标为i 处的奶酪被吃掉的得分为:如果第一只老鼠吃掉,则得分为 reward1[i] 。如果第二只老鼠吃掉,则得分为 reward2[i] 。给你一个正整数数组 reward1 ,一个正整数数组 reward2 ,......
  • 2611. 老鼠和奶酪
    有两只老鼠和 n 块不同类型的奶酪,每块奶酪都只能被其中一只老鼠吃掉。下标为i 处的奶酪被吃掉的得分为:如果第一只老鼠吃掉,则得分为 reward1[i] 。如果第二只老鼠吃掉,则得分为 reward2[i] 。给你一个正整数数组 reward1 ,一个正整数数组 reward2 ,和一个非负整数 k......
  • 【蓝桥杯集训·每日一题】AcWing 4309. 消灭老鼠
    写在前面本人CSDN博客主页:这里一、题目1、原题链接4309.消灭老鼠2、题目描述约翰的农场可以看作一个二维平面。农场中有n个老鼠,在毁坏着农田。第i个老鼠的位置坐标为(xi,yi)。不同老鼠可能位于同一位置。在(x0,y0)处,装有一个双向发射的激光枪,该位置没有老鼠。激光枪每次发......
  • 题目奶酪单
    Manacher模板:LuoguP3805反演:LuoguP3279总结......
  • P1433 吃奶酪-状压dp
    P1433吃奶酪-状压dp这是5.15晚自习的题目预习直接上题逝一逝吧放心,是对的代码P1433吃奶酪-洛谷|计算机科学教育新生态(luogu.com.cn)记录详情-洛谷|计算机科学教育新生态(luogu.com.cn)我真喜欢记忆化搜索(嘿嘿嘿)记忆化搜索的话,更容易理解dp[x][zt]设定为走到......
  • [SWPUCTF 2021 新生赛]老鼠走迷宫
    查壳:熟悉的配方,解包,反编译吧:进入.py文件:题目是走迷宫,进去后也发现了地图,那么我们将它打印出来:得到这么一张地图,那么看看起点和终点,起点:第一行第二个,终点:最后一行倒数第二个。画地图咯:得到Des='sssssddssddssaaaassssddwwddddssssssaawwaassssddssaassddddwwddssddwwwwwww......
  • PAT Basic 1107. 老鼠爱大米
    PATBasic1107.老鼠爱大米1.题目描述:翁恺老师曾经设计过一款Java挑战游戏,叫“老鼠爱大米”(或许因为他的外号叫“胖胖鼠”)。每个玩家用Java代码控制一只鼠,目标是抢吃尽可能多的大米让自己变成胖胖鼠,最胖的那只就是冠军。因为游戏时间不能太长,我们把玩家分成\(N\)组,每组......