aboutsummaryrefslogtreecommitdiff
path: root/avg_salary.cpp
diff options
context:
space:
mode:
authorjack <[email protected]>2024-06-14 13:13:15 -0600
committerjack <[email protected]>2024-06-14 13:13:15 -0600
commitd343a3b18dbaca9297d4f7b2280c4a16f0a5c8aa (patch)
tree96df922dae2a5073d9a50ea70c7aae6aa37e3ebe /avg_salary.cpp
downloadleetcode-d343a3b18dbaca9297d4f7b2280c4a16f0a5c8aa.tar.gz
leetcode-d343a3b18dbaca9297d4f7b2280c4a16f0a5c8aa.zip
initial
Diffstat (limited to 'avg_salary.cpp')
-rw-r--r--avg_salary.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/avg_salary.cpp b/avg_salary.cpp
new file mode 100644
index 0000000..12d49ce
--- /dev/null
+++ b/avg_salary.cpp
@@ -0,0 +1,32 @@
+// 1491. Average Salary Excluding the Minimum and Maximum Salary
+#include "leetcode.h"
+
+/*
+ * given an array of unique integers 'salary' where 'salary[i]' is the salaray
+ * of the i'th employee. return the average salary of employees excluding the
+ * minimum and maximum salary. answer within 10^-5 of actual answer
+ */
+
+class Solution {
+public:
+ double average(vector<int> &salary) {
+ double max = DBL_MIN, min = DBL_MAX, sum = 0;
+ for (int i = 0; i < salary.size(); i++) {
+ sum += salary[i];
+ if (salary[i] < min)
+ min = salary[i];
+ if (salary[i] > max)
+ max = salary[i];
+ }
+ sum = sum - min - max;
+ return sum / (salary.size() - 2);
+ }
+};
+
+int main() {
+ Solution obj;
+ vector<int> s1 = {4000, 3000, 1000, 2000};
+ vector<int> s2 = {1000, 2000, 3000};
+ printf("%f\n", obj.average(s1)); // expect: 2500.00000
+ printf("%f\n", obj.average(s2)); // expect: 2000.00000
+}