LeetCode meituan-003. 小美的跑腿代购(排序)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode meituan-003. 小美的跑腿代购(排序)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
小美的一個兼職是美團的一名跑腿代購員,她有 n 個訂單可以接,訂單編號是 1~n ,
但是因為訂單的時效性,他只能選擇其中 m 個訂單接取,精明的小美當然希望自己總的獲利是最大的,
已知,一份訂單會提供以下信息,跑腿價格 v ,商品重量 w kg,
商品每重 1kg ,代購費用要加 2 元,而一份訂單可以賺到的錢是跑腿價格和重量加價之和。
小美可是開蘭博基尼送貨的人,所以自然不會在意自己會累這種事情。
請問小美應該選擇哪些訂單,使得自己獲得的錢最多。
請你按照選擇的訂單編號的從小到大順序,如果存在多種方案,輸出訂單編號字典序較小的方案。
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/GXV5dX
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
#include<bits/stdc++.h> using namespace std; int main() {int m,n,v,w,i=0;cin >> n >> m;vector<pair<int,int>> arr(n);while(n--){cin >> v >> w;arr[i] = {v+2*w, i+1};//獲利,編號i++;}sort(arr.begin(), arr.end(),[&](auto a, auto b){if(a.first == b.first)return a.second < b.second;return a.first > b.first;//價格大的優先,標號小的優先});sort(arr.begin(), arr.begin()+m,[&](auto a, auto b){return a.second < b.second;//前m個,按編號排序});i = 0;while(m--){cout << arr[i].second << " ";i++;//輸出編號}return 0; }24 ms 3.3 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode meituan-003. 小美的跑腿代购(排序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1893. 检查是否区
- 下一篇: LeetCode 2150. 找出数组中