当前位置: 首页 > wzjs >正文

dw如何制作动态网页信息流优化师没经验可以做吗

dw如何制作动态网页,信息流优化师没经验可以做吗,上海发布官方网,最新手机网址Python每日一题 2025.4.2 一、简述二、题目再现1、昨天每日一题题目描述输入格式输出格式输入输出样例输入输出 2、另一种输入情况的类似题目题目描述输入输出 三、分析四、答案五、总结 一、简述 今天先不做题,对昨天的二叉树题目分析一下,整体上有些混…

Python每日一题 2025.4.2

  • 一、简述
  • 二、题目再现
    • 1、昨天每日一题
        • 题目描述
        • 输入格式
        • 输出格式
        • 输入输出样例
          • 输入
          • 输出
    • 2、另一种输入情况的类似题目
        • 题目描述
          • 输入
          • 输出
  • 三、分析
  • 四、答案
  • 五、总结

一、简述

  今天先不做题,对昨天的二叉树题目分析一下,整体上有些混乱,现在来梳理一下,看看问题在哪,以及应该注意什么。

二、题目再现

  下面的两个题目,我们暂且称为题目1和题目2。

1、昨天每日一题

题目描述

有一个 n ( n ≤ 1 0 6 ) n(n \le 10^6) n(n106) 个结点的二叉树。给出每个结点的两个子结点编号(均不超过 n n n),建立一棵二叉树(根节点的编号为 1 1 1),如果是叶子结点,则输入 0 0

建好这棵二叉树之后,请求出它的深度。二叉树的深度是指从根节点到叶子结点时,最多经过了几层。

输入格式

第一行一个整数 n n n,表示结点数。

之后 n n n 行,第 i i i 行两个整数 l l l r r r,分别表示结点 i i i 的左右子结点编号。若 l = 0 l=0 l=0 则表示无左子结点, r = 0 r=0 r=0 同理。

输出格式

一个整数,表示最大结点深度。

输入输出样例
输入
7
2 7
3 6
4 5
0 0
0 0
0 0
0 0
输出
4

2、另一种输入情况的类似题目

  这个题目是写函数,二叉树构建好了,然后这是具体构建描述及代码,详细地就不给全了,看一下题目描述就行。

题目描述

编写函数计算二叉树的深度以及叶子节点数。二叉树采用二叉链表存储结构

//二叉链表存储结构定义
typedef int TElemType;
typedef struct BiTNode{TElemType data;struct BiTNode  *lchild, *rchild; 
} BiTNode, *BiTree;//创建二叉树各结点,输入零代表创建空树
//采用递归的思想创建
//递归边界:空树如何创建呢:直接输入0;
//递归关系:非空树的创建问题,可以归结为先创建根节点,输入其数据域值;再创建左子树;最后创建右子树。左右子树递归即可完成创建!Status CreateBiTree(BiTree &T){TElemType e;scanf("%d",&e);if(e==0)T=NULL;else{T=(BiTree)malloc(sizeof(BiTNode));if(!T)exit(OVERFLOW);T->data=e;CreateBiTree(T->lchild);CreateBiTree(T->rchild);}return OK;  
}
输入
1 3 0 0 5 7 0 0 0
输出
3 2

  输出第一个3是深度,第二个2是叶子数。

三、分析

  认真读一下题目,可以看到,本质上都是一样的,求深度。昨天也说过了,求深度的话需要左右子树递归,并返回其最大值+1,不论这两个题目怎么样,求深度的这一点是不变的。那么问题出现在了哪里呢?二叉树的创建上。
  二叉树的创建肯定不是死板的,而根据其输入情况的不同,二叉树的创建肯定也不一样。题目2中数据的输入,结合其内部二叉树创建的描述,可以知道是先序输入的。而题目1的输入肯定不是先序输入,跟层序输入类似,但也不是层序输入。根据我的分析,其样子应该是想下面这样的。
在这里插入图片描述
  如果层序输入的话,遍历应该是:1 2 7 3 6 0 0 4 5 0 0 0 0 0 0,因此如果层序输入的话,也应该是这个。不过我们根据其输入情况来看,它是优先生成左子树,然后再生成右子树的,这样的话,满足我们递归求深度的条件(左右子树分别递归),不过问题就在于二叉树的创建。不能再用题目二那样的创建方式了,肯定不符合的。我大体看了一下其他的创建方式,由于左侧都是左子树,右侧都是右子树,那么就用两个数组分别存储左右结点编号,然后再dfs分别递归左右子树。所以此时的创建需要两个数组,不过这个数组是“有序”的,而如果先序输入的话,只能像昨天那种创建方式,因为这种是类似于“无序”的,需要将左右子树判断分开。
  另外既然有先序输入,那么也会有中序、后续输入的情况,我查了查,大部分二叉树创建都是先序输入的,其他类型的似乎没有。然后问了问gpt,它给出了方法,但是有一定限制,所以建议先不考虑这两种情况。后续有这种奇怪输入方式的题目的话,再另作分析。

四、答案

  下面这个c语言是洛谷里小伙伴给的,可以参考一下。

#include <iostream>
#define _for(i, a, b) for (int i=(a); i<=(b); i++)
using namespace std;const int MAXN = 1e6 + 10;struct node {int left, right;
};
node tree[MAXN];//存储结构定义int n, ans;void dfs(int id, int deep) {if (id == 0) return ;//到达叶子节点时返回ans = max(ans, deep);//更新答案dfs(tree[id].left, deep+1);//向左遍历dfs(tree[id].right, deep+1);//向右遍历
}int main() {cin >> n;_for (i, 1, n) cin >> tree[i].left >> tree[i].right;//读入+建树dfs(1, 1);//从1号节点出发,当前深度为1cout << ans << endl;//输出答案return 0;//完结撒花!
}

  下面这个是昨天ac的python代码,deepseek写的,整体思路跟上面类似。

n = int(input())
left = [0] * (n + 1)
right = [0] * (n + 1)for i in range(1, n + 1):l, r = map(int, input().split())left[i] = lright[i] = rdef max_depth(node):if node == 0:return 0return max(max_depth(left[node]), max_depth(right[node])) + 1print(max_depth(1))

五、总结

  首先要明确,人是灵活的。我们所学的,跟题目可能有些不同,本质不清楚,换种方式问,可能还会错,所以掌握本质才是根本。另外,有了思路之后还需要自己再写一写,要不然不熟练,之后肯定还会再出问题的。

http://www.dtcms.com/wzjs/312140.html

相关文章:

  • 怎么做网站站长视频成都达洱狐网络科技有限公司
  • 为什么不能用来名字做网站名网络营销公司排名
  • 网站建设 企炬安徽关键词seo
  • 如何给网站做seo专员是什么职位
  • 青岛专业建设网站中国站长素材网
  • 网站建设管理中se是什么意思军事新闻最新24小时
  • 网站前台后台打开慢搜狗seo
  • 人力社保网站建设的意义google搜索优化方法
  • 网站建设素材网搜索关键词排名优化服务
  • 地方招聘网站如何做推广引流推广平台有哪些
  • 阿里云做网站吗企业网站制作方案
  • 网站模版建设教程google 推广优化
  • wordpress 免费版广告优化大师软件下载
  • 怎么做租房网站佛山网站建设方案咨询
  • 企业开展网站建设自媒体是什么
  • 那些网站平台可以做3d建模短网址在线生成
  • 图做的好的网站小型培训机构管理系统
  • 网站关键字如何选择搜狗竞价推广效果怎么样
  • 技术专业网站建设成都seo网络优化公司
  • seo 成功网站上海seo优化培训机构
  • 企业seo指的是如何推广seo
  • 易语言 wordpress温州seo优化
  • 文化馆为何需要建设自己的网站谷歌浏览器下载手机版官网中文
  • 衡水网站网站建设微信信息流广告投放
  • 京东联盟需要自己做网站吗在线一键建站系统
  • 织梦做的网站怎么添加关键词电销系统软件排名
  • 网页是怎么做的北京seo顾问服务
  • wordpress开发视频网站模板下载网站发布与推广怎么写
  • 网站建设增值服务关键字
  • 西安网站建设hyk123百度网站安全检测