美文网首页
Python还能判断出早餐组合购买方案?吃早餐再也不愁不知道吃什

Python还能判断出早餐组合购买方案?吃早餐再也不愁不知道吃什

作者: 孤城暮雨丶 | 来源:发表于2020-12-23 14:27 被阅读0次

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

本篇文章来自腾讯云 作者:算法与编程之美

问题描述

小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过 x 元。请返回小扣共有多少种购买方案。

注意:

答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 1

提示:

1 <= staple.length <= 10^5

1 <= drinks.length <= 10^5

1 <= staple[i],drinks[i] <= 10^5

1 <= x <= 2*10^5

解决方案

首先可知买饮料的价格会小于等于总费用减去购买食物的支出额,所以可用两次二分查找进行解决;第一个二分查找得到买食物所能支出的最大金额(需保证所剩金额足够购买饮料)、第二个二分查找得到买饮料所能支出的最大金额。

代码如下:

from bisect import bisect_right
class Solution:
    def breakfastNumber(self, staple, drinks, x):
        s = 0
        staple.sort()
        drinks.sort()
        staple_len = bisect_right(staple, x - drinks[0])
        for food in staple[:staple_len]:
            i = bisect_right(drinks, x - food)
            s += i
        return s % 1000000007
if __name__ == '__main__':
    solution=Solution()
    a=solution.breakfastNumber()
    print(a)

结语

本题关键在于解决食物和饮料的搭配,需要灵活运用二分查找来分别得到购买食物和饮料所能支出的最大金额,第一次运用时需保证剩余资金足够购买饮料。

相关文章

  • Python还能判断出早餐组合购买方案?吃早餐再也不愁不知道吃什

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处...

  • 吃早餐

    早晨,一个小男孩刷完牙,她就开始吃早饭。他吃了俩火腿肠,一个煎鸡蛋还喝了一杯牛奶。他吃的很开心,嘴唇边儿都是牛奶了。

  • 吃早餐

    下班啦!下班啦!那种开心的感觉也不知道从哪儿来的!嘻嘻,一定要按计划度过今天哦!别废话,做就是了!

  • 吃早餐

    今天早上我和妈妈去外面吃早餐,那里得人好多,取餐得时候得排队,交完费窝和妈妈美美得吃起来。

  • 吃早餐

    昨天晚上说好了的,今天早上八点起床去东湖吃早餐。因为这些天大家都在熬夜玩手机,怕大家睡过头了,所以我特意调好了闹钟...

  • 吃早餐

    心情无比的郁闷,早上儿子想吃小笼包,在卫生间里的我说“让爸给你穿衣服带你去吃。”随后我听到了关门声,没带儿...

  • 吃早餐

    吃早餐 旅人记事本 休息的日子,“吃早餐”变成了一份消磨时光,品味生活的仪式。 如果说平时——都是匆匆地把自己塞饱...

  • 吃早餐

    今天早上我早早起来,奶奶就问我:“今天早上你想吃什么,是吃面?是吃炒饭?还是想吃馄饨?”我想了想,还是吃街...

  • 吃早餐

    一大早我来到了食堂里面,食堂的门口有几床烂被子放在地上,因为是下雨的原因。大厅里面,很多人刚刚用过餐,所有的...

  • 吃早餐

    今天早上我在床上睡懒觉,妈妈很早就出去买菜,还帮我买了火腿包。然后妈妈叫我起床吃早餐,可是我还想睡懒觉,直到妈妈第...

网友评论

      本文标题:Python还能判断出早餐组合购买方案?吃早餐再也不愁不知道吃什

      本文链接:https://www.haomeiwen.com/subject/tjnynktx.html