您的位置:首页 > 教育 > 培训 > 广东东莞新增本土确诊0例_站长工具综合查询ip_搜索引擎seo优化_免费推客推广平台

广东东莞新增本土确诊0例_站长工具综合查询ip_搜索引擎seo优化_免费推客推广平台

2024/12/31 0:40:58 来源:https://blog.csdn.net/H_P10/article/details/142905449  浏览:    关键词:广东东莞新增本土确诊0例_站长工具综合查询ip_搜索引擎seo优化_免费推客推广平台
广东东莞新增本土确诊0例_站长工具综合查询ip_搜索引擎seo优化_免费推客推广平台

随着各厂秋招的开启,收到面试邀请的同学也越来越多。在当年和我一起找实习的同学里面,有实力较强的同学收到了腾讯后台开发的校招面试邀请。但面试不止是实力的竞争,也有很重要的运气的因素。

虽然我的同学在腾讯后台开发的二面中挂掉了,但是并非是他实力不强。

CSDN - 本博客python入门笔记快捷下载

免费下载 - MySQL和Oracle的详细区别

CSDN - 本博客C++入门笔记快捷下载

今天带来和这位同学的腾讯面经中最相似的能找到的算法题:

题目描述:

题号:739

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。

图片

解题思路:

思路一:单调栈

在遍历数组时,如果当前温度大于栈顶元素对应的温度,说明找到了栈顶元素之后第一个比它大的温度,因此可以计算出两者之间的天数差,并将结果存入结果数组中。

如果当前温度不大于栈顶元素对应的温度,则将当前索引入栈。最终,栈中剩余的元素对应的结果值都为0,表示这些元素之后没有比它们大的温度。

时间复杂度:O(n) 

空间复杂度:O(n)

C++


// C++
class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int> stack;  vector<int> result(temperatures.size(), 0);  for (int i = 0; i < temperatures.size(); i++) {  while (!stack.empty() && temperatures[i] > temperatures[stack.top()]) {  int index = stack.top();  stack.pop();  result[index] = i - index;  }  stack.push(i);  }  return result;  }
};

go


// go
func dailyTemperatures(temperatures []int) []int {stack := []int{}  result := make([]int, len(temperatures))  for i := 0; i < len(temperatures); i++ {  for len(stack) > 0 && temperatures[i] > temperatures[stack[len(stack)-1]] {  index := stack[len(stack)-1]  stack = stack[:len(stack)-1]  result[index] = i - index  }  stack = append(stack, i)  }  return result  
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com