最近在网上看到一个帖子,一网友说后悔进华为了,原因就是太卷了,几乎每天都996。还一位网友签了华为,想打听下华为的大致加班情况,从投票的结果来看,除了63.2%的网友是观看以外,投票最高的是9116,比996还要恐怖,这样看996就是小弟了。
曾记得十多年前刚毕业的时候,偶尔也会遇到加班,即使加班晚上也不会很晚。不知道从什么时候开始,互联网行业突然流行起了996,有些公司甚至把它当做企业文化来宣传。
--------------下面是今天的算法题--------------
来看下今天的算法题,这题是LeetCode的第739题:每日温度。
问题描述
输入: nums = [73,74,75,71,69,72,76,73]
输出: [1,1,4,2,1,1,0,0]
输入: nums = [30,40,50,60]
输出: [1,1,1,0]
1 <= temperatures.length <= 10^5
30 <= temperatures[i] <= 100
问题分析
public int[] dailyTemperatures(int[] nums) {
int length = nums.length;// 数组长度
int[] ans = new int[length];// 返回结果
Stack<Integer> stk = new Stack<>();// 栈
for (int i = 0; i < length; i++) {
// 如果当前元素大于栈顶元素,说明栈顶元素遇到了右边比它大的值。
while (!stk.isEmpty() && nums[i] > nums[stk.peek()])
ans[stk.peek()] = i - stk.pop();
stk.push(i);// 把当前元素的下标入栈。
}
return ans;
}
public:
vector<int> dailyTemperatures(vector<int> &nums) {
int length = nums.size();// 数组长度
vector<int> ans(length);// 返回结果
stack<int> stk;// 栈
for (int i = 0; i < length; i++) {
// 如果当前元素大于栈顶元素,说明栈顶元素遇到了右边比它大的值。
while (!stk.empty() && nums[i] > nums[stk.top()]) {
ans[stk.top()] = i - stk.top();
stk.pop();
}
stk.push(i);// 把当前元素的下标入栈。
}
return ans;
}
def dailyTemperatures(self, nums: List[int]) -> List[int]:
length = len(nums) # 数组长度
ans = [0] * length # 返回结果
stk = [] # 栈
for i in range(0, length):
# 如果当前元素大于栈顶元素,说明栈顶元素遇到了右边比它大的值。
while stk and nums[i] > nums[stk[-1]]:
ans[stk[-1]] = i - stk[-1]
stk.pop()
stk.append(i) # 把当前元素的下标入栈。
return ans
1、这 10+ 个开发相关的在线工具,还有人没用过吗??? 2、一日一技:Python类型标注的高级用法 3、华为今年薪资,出来了! 4、突然无法登录!网友直呼“逝去的青春”!最新回应来了 5、为什么程序员的代码不能终身责任制?
点击关注公众号,阅读更多精彩内容