牛牛被广泛用于农业和牧场。现在,请你设计一个数据结构,实现以下功能:给定一个牛重量的数组,计算截止到每一位为止的中位数,并返回这个中位数数组。
区块链毕设网qklbishe.com为您提供问题的解答
牛牛被广泛用于农业和牧场。现在,请你设计一个数据结构,实现以下功能:给定一个牛重量的数组,计算截止到每一位为止的中位数,并返回这个中位数数组。
#include <vector> #include <queue> using namespace std; class Solution { public: vector<double> calculateMedians(vector<int>& weights) { int n = weights.size(); vector<double> ans; // 最大堆,用于存储较小的一半元素 priority_queue<int> maxHeap; // 最小堆,用于存储较大的一半元素 priority_queue<int, vector<int>, greater<int>> minHeap; for (int i = 0; i < n; ++i) { int num = weights[i]; if (maxHeap.empty() || num <= maxHeap.top()) { maxHeap.push(num); } else { minHeap.push(num); } // 平衡两个堆的大小,使得最大堆的元素数与最小堆的元素数相差不超过1 if (maxHeap.size() > minHeap.size() + 1) { minHeap.push(maxHeap.top()); maxHeap.pop(); } else if (minHeap.size() > maxHeap.size()) { maxHeap.push(minHeap.top()); minHeap.pop(); } // 计算当前的中位数 if (maxHeap.size() == minHeap.size()) { ans.push_back((maxHeap.top() + minHeap.top()) / 2.0); } else { ans.push_back(maxHeap.top()); } } return ans; } };
16:01
以上就是关于问题牛牛被广泛用于农业和牧场。现在,请你设计一个数据结构,实现以下功能:给定一个牛重量的数组,计算截止到每一位为止的中位数,并返回这个中位数数组。的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训