2023大连思科-英语技术顾问(BDE)笔试技术卷编程题

记录自己第一次手撕代码...
1.html实现以下布局
image-20230520203722189

<!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;
}
posted @   4加1等于9  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示