前几天字节跳动向全球员工发布内部邮件,宣布将大幅提升薪酬竞争力与期权激励力度以来。最近网上又传闻“比亚迪技术研发人员涨薪”,对此比亚迪方面回应称:“情况属实”。但未对具体的涨薪幅度做出回应。
也有消息称,比亚迪已经对技术研发人员进行了涨薪,大多数人涨薪在1000元左右,个别可以达到3200元,也有部分在数百元不等。2024年比亚迪曾发布通知,依据员工的工作业绩和工作表现,进行加薪、晋级和奖金分配。公司还设立了每年两次的薪资调整机会与一次晋升机会,确保员工的付出能够得到及时、公正的回报。
![]()
![]()
--------------下面是今天的算法题--------------
来看下今天的算法题,这题是LeetCode的第503题:下一个更大元素 II,难度是中等。
给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。
数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1 。
示例1:
输入: nums = [1,2,1] 输出: [2,-1,2] 解释: 第一个 1 的下一个更大的数是 2; 数字 2 找不到下一个更大的数; 第二个 1 的下一个最大的数需要循环搜索,结果也是 2。
示例2:
输入: nums = [1,2,3,4,3] 输出: [2,3,4,-1,4]
1 <= nums.length <= 10^4
-10^9 <= nums[i] <= 10^9
问题分析
这题让计算数组中每一个元素右边第一个比它大的值,和昨天我们讲的那道题类似,只不过这道题中数组是循环的,不过没关系,我们只需要把数组遍历两边即可。
原理还和昨天的那道题类似,单调栈中存储的不是数组中元素的值,而是数组中元素对应的下标,该下标在栈中从栈底到栈顶是单调递减的。
如果当前值大于栈顶元素对应的值,说明栈顶元素遇到了右边第一个比它大的值,记录下来即可,然后继续判断新的栈顶元素是否小于当前元素……,注意数组需要遍历两遍,要防止下标越界。
JAVA:
public int[] nextGreaterElements(int[] nums) {
int n = nums.length;
int[] ans = newint[n];
Arrays.fill(ans, -1);// 默认都为-1
Stack
stk =
new Stack<>();
// 相当于把数组循环两遍
for (int i = 0; i < n * 2; i++) {
int index = i % n;
// 单调栈,存储的是元素的下标,不是元素的值,从栈底
// 到栈顶所对应的值是递减的。
while (!stk.isEmpty() && nums[stk.peek()] < nums[index])
ans[stk.pop()] = nums[index];
// 当前元素的下标入栈
stk.push(index);
}
return ans;
}
C++:
public:
vector nextGreaterElements(vector &nums) {
int length = nums.size();
vector ans(length, -1); // 默认都为-1
stack stk;
// 相当于把数组循环两遍
for (int i = 0; i < length * 2; i++) {
int index = i % length;
// 单调栈,存储的是元素的下标,不是元素的值,从栈顶
// 到栈底所对应的值是递增的。
while (!stk.empty() && nums[stk.top()] < nums[index]) {
ans[stk.top()] = nums[index];
stk.pop();
}
// 当前元素的下标入栈
stk.push(index);
}
return ans;
}
笔者简介
博哥,真名:王一博,毕业十多年, 作者,专注于 数据结构和算法 的讲解,在全球30多个算法网站中累计做题2000多道,在公众号中写算法题解900多题,对算法题有自己独特的解题思路和解题技巧。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.