腾讯go后端开发一面面经

1.golang的基础类型;slice这种和int float有什么区别;传递一个slice需要注意什么;如果在slice里存放指针,对slice进行复制,修改新的某个下标变量时会影响老的吗
2.给了一段代码,关于select多路复用的代码,问这段代码输出什么
3.给了一段代码,关于context实现超时控制的,问有什么问题
4.go语言中map底层
5.mysql的事务隔离级别;如何解决幻读;Mysql如何给单行数据加锁;对数据库的复制 备份有了解吗;半同步复制两种模式
6.分布式理论raft共识算法的优缺点
7.TCP三次握手最后一次ack丢失会怎样;服务器端没收到第二个ack,客户端发数据,会发生什么;TCP的time_wait状态
8.多线程开发如何避免死锁
9.用过哪些ai 编辑器
10.问我的项目会遇到会遇到哪些难点
11.如何看待工程师文化
12.手撕代码:快排,问什么场景性能最坏
13.go语言中int和int32有什么区别
14.反问环节
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-25 09:53
点赞 评论 收藏
分享
这道题要求找出数组中每个大小为size的滑动窗口内的最大值。我们可以通过暴力遍历每个窗口并直接查找最大值的方式解决。首先处理特殊情况:若窗口大小size为 0,直接返回空数组。对于有效窗口,外层循环遍历所有可能的窗口起始位置(共num.size()-size+1个窗口),内层循环逐个比较窗口内的元素,记录每个窗口的最大值。最后将所有窗口的最大值收集到结果数组中返回。以下是对应的实现代码:include <queue>using namespace std;class Solution {public:vector<int> maxInWindows(vector<int>& num, int size) {vector<int> ans;// 处理窗口大小为0的特殊情况if (size == 0) return ans;queue<int> nums;// 遍历所有滑动窗口的起始位置for (int i = 0; i < num.size() - size + 1; i++) {int max = 0;// 遍历当前窗口内的元素,找到最大值for (int j = i; j < i + size; j++) {if (num[j] > max) max = num[j];}nums.push(max);}// 将队列中的最大值转移到结果数组while (!nums.empty()) {ans.push_back(nums.front());nums.pop();}return ans;}};该代码的时间复杂度为O(n×size),空间复杂度为O(n)。
点赞 评论 收藏
分享
11-27 19:43
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务