前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >终于知道工资为什么要保密了

终于知道工资为什么要保密了

作者头像
五分钟学算法
发布2024-01-04 13:02:08
960
发布2024-01-04 13:02:08
举报
文章被收录于专栏:五分钟学算法五分钟学算法

大家好,我是吴师兄。

在职场生涯中,我们常常会遇到一个微妙而复杂的问题:工资的保密性

我们很想窥探同事们的工资是多少,同时有忌讳同事知道自己的薪资,对于公司来说,也不想把每个人的工资待遇摆在明面上来。

首先,公开工资信息可能会引发不必要的比较和不满。例如,当你发现自己的努力与收入相比,与同事存在显著差异时,这种发现可能会破坏你的工作积极性。

此外,了解到同事的高收入,尽管他们的工作量可能比你少,这种情况会导致你感到失衡和不公平,这种心态不利于我们个人成长和职业发展。

同时,假设是一位刚步入职场的年轻人,在入职初期发现自己的薪资低于期望。这一发现使他感到沮丧,导致他对未来的职业发展失去了信心。工资保密在这里的作用是保护个人的自尊和积极性,避免因为早期的薪资差异而影响职业生涯的长远规划

再比如是一个在公司工作多年的资深员工,意外得知新入职的年轻员工的起薪接近或甚至高于他的薪资。这种情况可能会引起他的不满和怨气,影响他对公司的忠诚度和工作。

所以工资保密还是有一定的好处的。

然后继续来学习 LeetCode 上面和工资有关的一道题目:去掉最低工资和最高工资后的工资平均值。

题目描述是这样子的。

给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资。 请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。

这个问题的解决思路相对简单明了。有两种解法,第一种如下:

  1. 对工资数组进行排序。
  2. 去掉数组中的第一个元素(最低工资)和最后一个元素(最高工资)。
  3. 计算剩余元素的总和,并除以剩余元素的数量得到平均值。
代码语言:javascript
复制
public double average(int[] salary) {
    Arrays.sort(salary);
    double sum = 0;
    for (int i = 1; i < salary.length - 1; i++) {
        sum += salary[i];
    }
    return sum / (salary.length - 2);
}

第二种解法:

  1. 在一次遍历中找到最高和最低的工资。
  2. 同时计算总工资。
  3. 去掉最高和最低工资后,计算平均值。
代码语言:javascript
复制
public double average(int[] salary) {
    int maxSalary = Integer.MIN_VALUE;
    int minSalary = Integer.MAX_VALUE;
    double sum = 0;

    for (int s : salary) {
        maxSalary = Math.max(maxSalary, s);
        minSalary = Math.min(minSalary, s);
        sum += s;
    }

    return (sum - maxSalary - minSalary) / (salary.length - 2);
}

我总结并录制了 100 道 LeetCode 高频算法题,涵盖了数组、链表、栈、队列、二叉树、回溯算法、动态规划等众多高频知识点,所选的题目也是非常有特征的题目,一题抵十题。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 五分钟学算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档