2023大连思科-英语技术顾问(BDE)笔试技术卷编程题
记录自己第一次手撕代码...
1.html实现以下布局
<!DOCTYPE html> <html> <head> <title></title> </head> <frameset cols="10%,*"> <frame src="frame/left.html"> <frameset rows="10%,*"> <frame src="frame/top.html"> <frame src="frame/main.html"> </frameset> </frameset> </html>
2.给定一个包含n个正整数的数组和一个正整数s,找出数组中满足其和sum>=s的长度最小的连续子数组,并返回其长度。如果不存在子数组,则返回0。
public int minSubArrayLen(int target, int[] nums) { int left = 0; int sum = 0; int min = Integer.MAX_VALUE; for (int i = 0; i < nums.length; i++) { sum += nums[i]; if (sum >= target) { min = Math.min(min, i - left + 1); } while (sum - nums[left] >= target) { sum -= nums[left++]; min = Math.min(min, i - left + 1); } } if (min == Integer.MAX_VALUE) { return 0; } return min; }
3.给定一颗n元树,求其最大深度。最大深度是指从根节点到最远叶节点的最长路径的节点数。
方法一:递归
public int maxDepth(Node* root) { if(root == nullptr) { return 0; } int depth = 0; for(int i = 0; i < root->children.size(); i++) { depth = max(depth, maxDepth(root->children[i])); } return 1 + depth; }
方法二:层次遍历
public int maxDepth(Node* root) { int depth = 0; queue<Node*> que; if(root != nullptr) que.push(root); while(!que.empty()) { depth++; int size = que.size(); for(int i = 0; i < size; i++) { Node* tmpNode = que.front(); que.pop(); for(int i = 0; i < tmpNode->children.size(); i++) { if(tmpNode->children[i]) que.push(tmpNode->children[i]); } } } return depth; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人