2024每日刷题(124)
Leetcode—857. 雇佣 K 名工人的最低成本
算法思想
实现算法
class Solution {
public:double mincostToHireWorkers(vector<int>& quality, vector<int>& wage, int k) {double ans = DBL_MAX;priority_queue<int> maxHeap;vector<pair<double, int>> workers;for(int i = 0; i < quality.size(); i++) {workers.emplace_back((double)wage[i] / quality[i], quality[i]);}ranges::sort(workers);int qualitySum = 0;for(const auto&[wagePerquality, quality]: workers) {maxHeap.push(quality);qualitySum += quality;if(maxHeap.size() > k) {qualitySum -= maxHeap.top(), maxHeap.pop();}if(maxHeap.size() == k) {ans = min(ans, qualitySum * wagePerquality);}}return ans;}
};
运行结果
DBL_MAX
DBL_MAX是一个C语言中的宏,用于表示double类型能够表示的最大正数。在标准的C语言库中,它通常定义在<float.h>头文件中。它的值通常是一个非常大的正数,代表double类型所能表示的最大值,具体值取决于编译器和计算机体系结构。
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!