概述
2022.6.27今天你刷题了吗?
题目:
给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资。
请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。
分析:
给定一个数组,去掉最大和最小,剩下的数进行求平均并且返回这个平均值。
思路:先排序然后去掉下标0和下标【size()】的数,然后把剩下数通过for加起来
解析:
1.暴力求解
class Solution {
public:
double average(vector<int>& salary) {
sort(salary.begin(), salary.end());
double sum=0.0;
for (int i = 1; i < salary.size()-1; i++)
{
sum += salary[i];
}
return sum/(salary.size()-2);
}
};
2.内置函数
通过max_element
min_element
accumulate
三个函数分别取得最大,最小,和累加得到结果
class Solution {
public:
double average(vector<int>& salary) {
double maxValue = *max_element(salary.begin(), salary.end());
double minValue = *min_element(salary.begin(), salary.end());
double sum = accumulate(salary.begin(), salary.end(), - maxValue - minValue);
return sum / int(salary.size() - 2);
}
};
最后
以上就是无奈超短裙为你收集整理的力扣每日一题-第29天-1491.去掉最低工资和最高工资后的平均工资的全部内容,希望文章能够帮你解决力扣每日一题-第29天-1491.去掉最低工资和最高工资后的平均工资所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复