【1491. 去掉最低工资和最高工资后的工资平均值】

Love The Way You Lie 2023-10-02 23:57 26阅读 0赞
  1. package com.lfsun.main.demoleetcode.easy;
  2. import org.testng.annotations.Test;
  3. import java.util.Arrays;
  4. import java.util.Comparator;
  5. /**
  6. *
  7. * 给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资。
  8. *
  9. * 请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。
  10. *
  11. *
  12. *
  13. * 示例 1:
  14. *
  15. * 输入:salary = [4000,3000,1000,2000]
  16. * 输出:2500.00000
  17. * 解释:最低工资和最高工资分别是 1000 和 4000 。
  18. * 去掉最低工资和最高工资以后的平均工资是 (2000+3000)/2= 2500
  19. *
  20. * 示例 2:
  21. *
  22. * 输入:salary = [1000,2000,3000]
  23. * 输出:2000.00000
  24. * 解释:最低工资和最高工资分别是 1000 和 3000 。
  25. * 去掉最低工资和最高工资以后的平均工资是 (2000)/1= 2000
  26. *
  27. * 示例 3:
  28. *
  29. * 输入:salary = [6000,5000,4000,3000,2000,1000]
  30. * 输出:3500.00000
  31. *
  32. * 示例 4:
  33. *
  34. * 输入:salary = [8000,9000,2000,3000,6000,1000]
  35. * 输出:4750.00000
  36. *
  37. *
  38. *
  39. * 提示:
  40. *
  41. * 3 <= salary.length <= 100
  42. * 10^3 <= salary[i] <= 10^6
  43. * salary[i] 是唯一的。
  44. * 与真实值误差在 10^-5 以内的结果都将视为正确答案。
  45. * @author: lfsun
  46. * @time: 21:13
  47. * @date: 2022/12/15
  48. */
  49. public class Average {
  50. public double average(int[] salary) {
  51. Arrays.sort(salary);
  52. double sum = 0;
  53. for (int i = 1; i < salary.length - 1; i++) {
  54. sum += salary[i];
  55. }
  56. return sum / (salary.length - 2);
  57. }
  58. public double averageByStream(int[] salary) {
  59. // 排序 跳过第一个, limit (salary.length - 2) 个 求剩下平均数
  60. return Arrays.stream(salary).boxed().sorted().skip(1).limit(salary.length - 2).mapToInt(Integer::valueOf).average().getAsDouble();
  61. // 排序 跳过第一个,倒序 跳过第一个 求剩下平均数
  62. //return Arrays.stream(salary).boxed().sorted().skip(1).sorted(Comparator.reverseOrder()).skip(1).mapToInt(Integer::valueOf).average().getAsDouble();
  63. }
  64. @Test
  65. public void test() {
  66. System.out.println(averageByStream(new int[]{
  67. 4000, 3000, 1000, 2000}));
  68. }
  69. }

发表评论

表情:
评论列表 (有 0 条评论,26人围观)

还没有评论,来说两句吧...

相关阅读