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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 1599. 经营摩天轮的最大利润(模拟)

發布時間:2024/7/5 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 1599. 经营摩天轮的最大利润(模拟) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

你正在經營一座摩天輪,該摩天輪共有 4 個座艙 ,每個座艙 最多可以容納 4 位游客 。你可以 逆時針 輪轉座艙,但每次輪轉都需要支付一定的運行成本 runningCost 。摩天輪每次輪轉都恰好轉動 1 / 4 周

給你一個長度為 n 的數組 customers , customers[i] 是在第 i 次輪轉(下標從 0 開始)之前到達的新游客的數量。這也意味著你必須在新游客到來前輪轉 i 次。每位游客在登上離地面最近的座艙前都會支付登艙成本 boardingCost ,一旦該座艙再次抵達地面,他們就會離開座艙結束游玩。

你可以隨時停下摩天輪,即便是 在服務所有游客之前 。如果你決定停止運營摩天輪,為了保證所有游客安全著陸,將免費進行所有后續輪轉 。注意,如果有超過 4 位游客在等摩天輪,那么只有 4 位游客可以登上摩天輪,其余的需要等待 下一次輪轉 。

返回最大化利潤所需執行的 最小輪轉次數 。 如果不存在利潤為正的方案,則返回 -1 。

示例 1:

輸入:customers = [8,3], boardingCost = 5, runningCost = 6 輸出:3 解釋:座艙上標注的數字是該座艙的當前游客數。 1. 8 位游客抵達,4 位登艙,4 位等待下一艙,摩天輪輪轉。當前利潤為 4 * $5 - 1 * $6 = $142. 3 位游客抵達,4 位在等待的游客登艙,其他 3 位等待,摩天輪輪轉。當前利潤為 8 * $5 - 2 * $6 = $283. 最后 3 位游客登艙,摩天輪輪轉。當前利潤為 11 * $5 - 3 * $6 = $37 。 輪轉 3 次得到最大利潤,最大利潤為 $37 。示例 2: 輸入:customers = [10,9,6], boardingCost = 6, runningCost = 4 輸出:7 解釋: 1. 10 位游客抵達,4 位登艙,6 位等待下一艙,摩天輪輪轉。當前利潤為 4 * $6 - 1 * $4 = $202. 9 位游客抵達,4 位登艙,11 位等待(2 位是先前就在等待的,9 位新加入等待的),摩天輪輪轉。當前利潤為 8 * $6 - 2 * $4 = $403. 最后 6 位游客抵達,4 位登艙,13 位等待,摩天輪輪轉。當前利潤為 12 * $6 - 3 * $4 = $604. 4 位登艙,9 位等待,摩天輪輪轉。當前利潤為 * $6 - 4 * $4 = $805. 4 位登艙,5 位等待,摩天輪輪轉。當前利潤為 20 * $6 - 5 * $4 = $1006. 4 位登艙,1 位等待,摩天輪輪轉。當前利潤為 24 * $6 - 6 * $4 = $1207. 1 位登艙,摩天輪輪轉。當前利潤為 25 * $6 - 7 * $4 = $122 。 輪轉 7 次得到最大利潤,最大利潤為$122 。示例 3: 輸入:customers = [3,4,0,5,1], boardingCost = 1, runningCost = 92 輸出:-1 解釋: 1. 3 位游客抵達,3 位登艙,0 位等待,摩天輪輪轉。當前利潤為 3 * $1 - 1 * $92 = -$892. 4 位游客抵達,4 位登艙,0 位等待,摩天輪輪轉。當前利潤為 is 7 * $1 - 2 * $92 = -$1773. 0 位游客抵達,0 位登艙,0 位等待,摩天輪輪轉。當前利潤為 7 * $1 - 3 * $92 = -$2694. 5 位游客抵達,4 位登艙,1 位等待,摩天輪輪轉。當前利潤為 12 * $1 - 4 * $92 = -$3565. 1 位游客抵達,2 位登艙,0 位等待,摩天輪輪轉。當前利潤為 13 * $1 - 5 * $92 = -$447 。 利潤永不為正,所以返回 -1 。示例 4: 輸入:customers = [10,10,6,4,7], boardingCost = 3, runningCost = 8 輸出:9 解釋: 1. 10 位游客抵達,4 位登艙,6 位等待,摩天輪輪轉。當前利潤為 4 * $3 - 1 * $8 = $42. 10 位游客抵達,4 位登艙,12 位等待,摩天輪輪轉。當前利潤為 8 * $3 - 2 * $8 = $83. 6 位游客抵達,4 位登艙,14 位等待,摩天輪輪轉。當前利潤為 12 * $3 - 3 * $8 = $124. 4 位游客抵達,4 位登艙,14 位等待,摩天輪輪轉。當前利潤為 16 * $3 - 4 * $8 = $165. 7 位游客抵達,4 位登艙,17 位等待,摩天輪輪轉。當前利潤為 20 * $3 - 5 * $8 = $206. 4 位登艙,13 位等待,摩天輪輪轉。當前利潤為 24 * $3 - 6 * $8 = $247. 4 位登艙,9 位等待,摩天輪輪轉。當前利潤為 28 * $3 - 7 * $8 = $288. 4 位登艙,5 位等待,摩天輪輪轉。當前利潤為 32 * $3 - 8 * $8 = $329. 4 位登艙,1 位等待,摩天輪輪轉。當前利潤為 36 * $3 - 9 * $8 = $36 。 ???????10. 1 位登艙,0 位等待,摩天輪輪轉。當前利潤為 37 * $3 - 10 * $8 = $31 。 輪轉 9 次得到最大利潤,最大利潤為 $36 。提示: n == customers.length 1 <= n <= 105 0 <= customers[i] <= 50 1 <= boardingCost, runningCost <= 100

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/maximum-profit-of-operating-a-centennial-wheel
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

class Solution { public:int minOperationsMaxProfit(vector<int>& customers, int boardingCost, int runningCost) {if(boardingCost*4 <= runningCost)//肯定掙不到錢return -1;int t = -1, maxProfit = INT_MIN, profit=0, n = customers.size();int people = 0, getup;for(int i = 0; i < n || people > 0; i++){if(i < n)//來了多少游客people += customers[i];if(people > 0)//還有游客在等待{getup = min(4, people);//一次上去最多4個profit += getup*boardingCost;//收入people -= getup;//游客少了幾個}profit -= runningCost;//一次運行成本if(profit > maxProfit)//更新最大值{maxProfit = profit;if(maxProfit > 0)t = i+1;}}return t;} };

356 ms 79.6 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的LeetCode 1599. 经营摩天轮的最大利润(模拟)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。