日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?

發(fā)布時間:2023/11/29 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

給你一個下標(biāo)從 0 開始的正整數(shù)數(shù)組 candiesCount ,其中 candiesCount[i] 表示你擁有的第 i 類糖果的數(shù)目。同時給你一個二維數(shù)組 queries ,其中 queries[i] = [favoriteTypei, favoriteDayi, dailyCapi] 。

你按照如下規(guī)則進(jìn)行一場游戲:

你從第 0 天開始吃糖果。
你在吃完 所有 第 i - 1 類糖果之前,不能 吃任何一顆第 i 類糖果。
在吃完所有糖果之前,你必須每天 至少 吃 一顆 糖果。
請你構(gòu)建一個布爾型數(shù)組 answer ,滿足 answer.length == queries.length 。answer[i] 為 true 的條件是:在每天吃 不超過 dailyCapi 顆糖果的前提下,你可以在第 favoriteDayi 天吃到第 favoriteTypei 類糖果;否則 answer[i] 為 false 。注意,只要滿足上面 3 條規(guī)則中的第二條規(guī)則,你就可以在同一天吃不同類型的糖果。

請你返回得到的數(shù)組 answer 。

示例 1:

輸入:candiesCount = [7,4,5,3,8], queries = [[0,2,2],[4,2,4],[2,13,1000000000]]
輸出:[true,false,true]

提示:

  • 在第 0 天吃 2 顆糖果(類型 0),第 1 天吃 2 顆糖果(類型 0),第 2 天你可以吃到類型 0 的糖果。
  • 每天你最多吃 4 顆糖果。即使第 0 天吃 4 顆糖果(類型 0),第 1 天吃 4 顆糖果(類型 0 和類型 1),你也沒辦法在第 2 天吃到類型 4 的糖果。換言之,你沒法在每天吃 4 顆糖果的限制下在第 2 天吃到第 4 類糖果。
  • 如果你每天吃 1 顆糖果,你可以在第 13 天吃到類型 2 的糖果。
    • 示例 2:

      輸入:candiesCount = [5,2,6,4,1], queries = [[3,1,2],[4,10,3],[3,10,100],[4,100,30],[1,3,1]]輸出:[false,true,true,false,false]

    解題思路

  • 計算最快速度吃到favoriteType需要多少天(一天吃dailyCap顆)
  • 計算最慢速度吃到favoriteType需要多少天(一天吃一顆)
  • 處于這兩者之間的天數(shù),都是我們可到達(dá)的天數(shù)
  • 為了加快速度我們可以,維護(hù)一個前綴和,記錄下吃到favoriteType糖果之前,需要吃到多少顆的其他糖果。最短天數(shù)和最長天數(shù)就是由favoriteType之前有多少顆糖果決定的

    • 一天吃一顆需要sum[favoriteType+1](包含favoriteType的糖果數(shù)量)
    • 一天吃dailyCap顆需要sum[favoriteType]/dailyCap+1(不包含favoriteType的糖果數(shù)量)

    代碼

    func canEat(candiesCount []int, queries [][]int) []bool {bools := make([]bool,len(queries))sum := make([]int, len(candiesCount)+1)for i := 1; i <= len(candiesCount); i++ {sum[i]+=candiesCount[i-1]+sum[i-1]}for j, query := range queries {//中間就算合適的天數(shù)就是可以達(dá)到的天數(shù)//因為是從0開始統(tǒng)計的,而我們所需要的天數(shù)應(yīng)該是favoriteDay+1favoriteType,favoriteDay,dailyCap:=query[0],query[1]+1,query[2]if favoriteDay>=sum[favoriteType] / dailyCap+1&&favoriteDay<=sum[favoriteType+1]{bools[j]=true}}return bools }

    總結(jié)

    以上是生活随笔為你收集整理的leetcode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。