当前位置: 首页 > news >正文

Leetcode 857 -- 贪心 | 数学

题目描述

雇佣 K 名工人的最低成本

思路

参考官方题解和这里。

代码1(正确)

class Solution {
public:double mincostToHireWorkers(vector<int>& quality, vector<int>& wage, int k) {int n = wage.size();double res = 0, totalq = 0; // totalqualityvector<int> h(n);for(int i = 0; i < n; i ++ )    h[i] = i;sort(h.begin(), h.end(), [&](int &a, int &b){return wage[a] * quality[b] < wage[b] * quality[a]; });for(int i = 0; i < n; i ++ )    cout << h[i] << ' ';cout << endl;priority_queue<int, vector<int>, less<int>> q; // 降序for(int i = 0; i < k - 1; i ++ ){q.push(quality[h[i]]);totalq += quality[h[i]];}for(int i = k - 1; i < n; i ++ ){q.push(quality[h[i]]);totalq += quality[h[i]];double cur = totalq / (double)quality[h[i]] * wage[h[i]];if(res == 0 || cur < res)  res = cur;totalq -= q.top();q.pop();}return res;}
};

代码2(错误)

class Solution {
public:typedef pair<double, int> PDI;double mincostToHireWorkers(vector<int>& quality, vector<int>& wage, int k) {int n = wage.size();double res = 0, totalq = 0; // totalqualityvector<int> h(n);for(int i = 0; i < n; i ++ )    h[i] = i;sort(h.begin(), h.end(), [&](int &a, int &b){return quality[a] < quality[b];});priority_queue<PDI, vector<PDI>, less<PDI>> q; // 降序for(int i = 0; i < k - 1; i ++ ){int idx = h[i];totalq += quality[idx];q.push({(double)wage[i] / quality[i],idx});}for(int i = k - 1; i < n; i ++ ){int idx = h[i];q.push({(double)wage[idx] / quality[idx],idx});          totalq += quality[idx];auto t = q.top();cout << totalq << ' ';double cur = totalq * t.first;if(res == 0 || cur < res)   res = cur;totalq -= quality[t.second];q.pop();}return res;}
};

http://www.mrgr.cn/news/97123.html

相关文章:

  • OrangePi5Plus开发板不能正确识别USB 3.0 设备 (绿联HUB和Camera)
  • 指令补充+样式绑定+计算属性+监听器
  • 在 Android Studio 中运行安卓应用到 MuMu 模拟器
  • Leetcode 33 -- 二分查找 | 归约思想
  • PyTorch中的Flatten
  • windows如何安装wkhtmltoimage 给PHP使用根据HTML生成图片
  • Ansible Playbook 进阶探秘:Handlers、变量、循环及条件判断全解析
  • Leetcode 15 -- 双指针
  • pyTorch框架:模型的子类写法--改进版二分类问题
  • Opencv计算机视觉编程攻略-第九节 描述和匹配兴趣点
  • 【JavaScript】原型链 prototype 和 this 关键字的练习(老虎机)
  • 前端快速入门学习2-HTML
  • 【11408学习记录】英语写作黄金模板+语法全解:用FTC数据泄漏案掌握书信结构与长难句拆解(附思维导图)
  • 《AI大模型开发笔记》MCP快速入门实战(一)
  • Linux开发工具——vim
  • Linux操作系统 4.Linux实用操作
  • #SVA语法滴水穿石# (003)关于 sequence 和 property 的区别和联系
  • Ubuntu上离线安装ELK(Elasticsearch、Logstash、Kibana)
  • 卫星智能化健康管理#卫星工程系列
  • python 命名空间与作用域 可变与不可变对象 闭包