大型门户网站建设企业佛山微商网站建设

diannao/2026/1/19 16:00:03/文章来源:
大型门户网站建设企业,佛山微商网站建设,网页制作与设计讨论,北京到石家庄leetcode-剑指offer-321.面试题22-链表中的倒数第k个节点22.面试题24-反转链表23.面试题25-合并两个排序链表-递归24.面试题26-树的子结构25.面试题27-二叉树的镜像26.面试题28-对称二叉树27.面试题29-顺时针打印矩阵28.面试题30-包含min函数的栈29.面试题31-栈的押入#xff… leetcode-剑指offer-321.面试题22-链表中的倒数第k个节点22.面试题24-反转链表23.面试题25-合并两个排序链表-递归24.面试题26-树的子结构25.面试题27-二叉树的镜像26.面试题28-对称二叉树27.面试题29-顺时针打印矩阵28.面试题30-包含min函数的栈29.面试题31-栈的押入弹出序列30.面试题32-1-从上到下打印二叉树31.面试题32-2-从上到下打印二叉树32.面试题32-3-从上到下打印二叉树本系列博文为题库刷题笔记仅在督促自己刷题如有不详之处请参考leetcode官网https://leetcode-cn.com/problemset/lcof/172/1645-184/1645编程语言为python 21.面试题22-链表中的倒数第k个节点 输入一个链表输出该链表中倒数第k个节点。为了符合大多数人的习惯本题从1开始计数即链表的尾节点是倒数第1个节点。例如一个链表有6个节点从头节点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 双指针技巧没要求删除节点所以不需要设置哑节点 class Solution(object):def getKthFromEnd(self, head, k)::type head: ListNode:type k: int:rtype: ListNodeif headNone:return headp1headfor _ in range(k): # 1:[0,k-1]p1p1.nextp2headwhile(p1):p1p1.nextp2p2.nextreturn p222.面试题24-反转链表 # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val x # self.next Noneclass Solution(object):def reverseList(self, head)::type head: ListNode:rtype: ListNodeif headNone or head.nextNone:return headpre_nodeNonecur_nodeheadwhile(cur_node):next_nodecur_node.nextcur_node.nextpre_nodepre_nodecur_nodecur_nodenext_nodereturn pre_node23.面试题25-合并两个排序链表-递归 迭代新建一个头节点用归并方法比较连个排序链表对应节点用较小的节点值 创建新的节点更新比较节点。 递归 class Solution(object):def mergeTwoLists(self, l1, l2)::type l1: ListNode:type l2: ListNode:rtype: ListNodeif l1None:return l2if l2None:return l1if l1.vall2.val:l1.nextself.mergeTwoLists(l1.next,l2)return l1else:l2.nextself.mergeTwoLists(l1,l2.next)return l224.面试题26-树的子结构 输入两棵二叉树A和B判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构 即 A中有出现和B相同的结构和节点值。 深度优先遍历比较各个节点。 A的每一个节点都可能是B的根节点因此 需要对A的每一个节点进行先序遍历–isSubStructure(A,B) 以A每一个节点为根节点的子树是否包含树B-- dfs(node1,node2) # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val x # self.left None # self.right Noneclass Solution(object):def isSubStructure(self, A, B)::type A: TreeNode:type B: TreeNode:rtype: booldef dfs(node1,node2):if node2None:return Trueif node1None or node1.val!node2.val:return Falsereturn dfs(node1.left,node2.left) or dfs(node1.right,node2.right) return bool(A and B) and (dfs(A,B) or self.isSubStructure(A.left,B) or self.isSubStructure(A.right,B))25.面试题27-二叉树的镜像 请完成一个函数输入一个二叉树该函数输出它的镜像。 深度优先遍历 单个节点要作的操作:交换左右子树,对两个子树进行相同的操作。 class Solution(object):def mirrorTree(self, root)::type root: TreeNode:rtype: TreeNodedef dfs(node):if nodeNone:returnnode.left,node.rightnode.right,node.leftdfs(node.left)dfs(node.right)return nodereturn dfs(root)26.面试题28-对称二叉树 请实现一个函数用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样那么它是对称的。 迭代解法 class Solution(object):def isSymmetric(self, root)::type root: TreeNode:rtype: boolque[(root,root)]while(que):node1,node2que.pop(0)if node1None and node2None:continueif node1None or node2None:return Falseif node1.val!node2.val:return Falseque.append((node1.left,node2.right))que.append((node1.right,node2.left))return True自底向上的递归子树给父亲提供信息 class Solution(object):def isSymmetric(self, root)::type root: TreeNode:rtype: booldef isSymmetric_bottom_up(node1,node2):if node1None and node2None:return Trueif node1None or node2None:return Falsereturn node1.valnode2.val and isSymmetric_bottom_up(node1.left,node2.right) and isSymmetric_bottom_up(node1.right,node2.left)return isSymmetric_bottom_up(root,root)27.面试题29-顺时针打印矩阵 有一个控制方向的列表 class Solution(object):def spiralOrder(self, matrix)::type matrix: List[List[int]]:rtype: List[int]mlen(matrix)if m0:return []nlen(matrix[0])visited_mat[[True]*n for _ in range(m)]dr[0,1,0,-1]dc[1,0,-1,0]di0r,c0,0res[]for _ in range(m*n):res.append(matrix[r][c])visited_mat[r][c]Falsenext_r,next_crdr[di],cdc[di] # 控制横纵坐标的增减# print(r,c,next_r,next_c)if 0next_rm and 0next_cn and visited_mat[next_r][next_c]:rnext_rcnext_celse:di(di1)%4r,crdr[di],cdc[di]return res28.面试题30-包含min函数的栈 定义栈的数据结构请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中调用 min、push 及 pop 的时间复杂度都是 O(1)。 min 函数时间复杂度要求是o(1),要么存一个元素要么放在辅助栈的栈顶或栈底维护一个元素在连续弹出元素的时候无法o(1)时间更新最小值。 所以需要维护以个辅助栈辅助栈栈顶存最小元素。 当push val时将val与辅助栈栈顶元素对比如果更小就Push进辅助栈栈顶 如果更大就复制一份栈顶元素 当pop元素时两个栈同时pop()就可以了。 class MinStack(object):def __init__(self):initialize your data structure here.self.main_stack[]self.help_stack[]self.size0def push(self, x)::type x: int:rtype: Noneif self.size0:self.size1self.main_stack.append(x)self.help_stack.append(x)else:self.size1self.main_stack.append(x)if self.help_stack[-1]x:self.help_stack.append(x)else:self.help_stack.append(self.help_stack[-1])def pop(self)::rtype: Noneif self.size0:returnelse:self.size-1self.help_stack.pop()return self.main_stack.pop()def top(self)::rtype: intif self.size0:return else:return self.main_stack[-1]def min(self)::rtype: intif self.size0:returnelse:return self.help_stack[-1]29.面试题31-栈的押入弹出序列 输入两个整数序列第一个序列表示栈的压入顺序请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列 {1,2,3,4,5} 是某栈的压栈序列序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。 使用一个辅助栈来帮助实现判断 入栈按照压栈序列顺序执行每次入栈后判断栈顶元素和弹出序列的当前元素是否一致一致的话执行弹出操作。不断重复如果能够遍历完两个序列说明两者是栈的押入和弹出序列 class Solution(object):def validateStackSequences(self, pushed, popped)::type pushed: List[int]:type popped: List[int]:rtype: boolhelp_stack[]i0for val in pushed:help_stack.append(val)while(help_stack and help_stack[-1]popped[i]):help_stack.pop()i1return not help_stack30.面试题32-1-从上到下打印二叉树 从上到下打印出二叉树的每个节点同一层的节点按照从左到右的顺序打印。结果放在一个list中。 思路二叉树的层次遍历。迭代-没有level的控制一直押入弹出就可以。 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val x # self.left None # self.right Noneclass Solution(object):def levelOrder(self, root)::type root: TreeNode:rtype: List[int]if rootNone:return []res[]que[root]while(que):nodeque.pop(0) # 不加可以么res.append(node.val)if node.left:que.append(node.left)if node.right:que.append(node.right)return res31.面试题32-2-从上到下打印二叉树 从上到下按层打印二叉树同一层的节点按从左到右的顺序打印每一层打印到一行。 思路二叉树的层次遍历。迭代维护每一层的节点在同一个循环中输出。 class Solution(object):def levelOrder(self, root)::type root: TreeNode:rtype: List[List[int]]if rootNone:return []res[]que[root]while(que):nlen(que)res.append([])for i in range(n):nodeque.pop(0)res[-1].append(node.val)if node.left:que.append(node.left)if node.right:que.append(node.right)return res递归 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val x # self.left None # self.right Noneclass Solution(object):def levelOrder(self, root)::type root: TreeNode:rtype: List[List[int]]def bfs(node,level):if nodeNone:returnif levellen(res)-1:res.append([])res[level].append(node.val)bfs(node.left,level1)bfs(node.right,level1)res[]bfs(root,0) # 如果root为空会直接返回return res32.面试题32-3-从上到下打印二叉树 请实现一个函数按照之字形顺序打印二叉树即第一行按照从左到右的顺序打印第二层按照从右到左的顺序打印第三行再按照从左到右的顺序打印其他行以此类推。 最直接的办法依据上一题的解题思路只是在奇数层的时候将res[l]内容逆序操作以下。 class Solution(object):def levelOrder(self, root)::type root: TreeNode:rtype: List[List[int]]if rootNone:return []res[]que[root]while(que):nlen(que)tmp[]for i in range(n):nodeque.pop(0)tmp.append(node.val)if node.left:que.append(node.left)if node.right:que.append(node.right)if len(res)%21:res.append(tmp[::-1])else:res.append(tmp)return res

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何丰富网站内容金种子酒业网站建设

目录 1 Display Widgets简介 2 如何使用Display Widgets部件 2.1 QLabel组件-显示图像或文本 2.2 QCalendarWidget组件-日历简单的使用 2.3 QLCDNumber组件-控件作时钟的显示 2.4 QProgressBar组件-模拟手机电池充电 2.5 QFrame组件-绘制水平/垂直线 Display Widgets将分…

做网站为什么很复杂机械外贸网站建设

任务五十一: 压缩包文件暴力破解 任务环境说明:Server2005 1. 通过本地PC中渗透测试平台Kali使用Nmap扫描目标靶机服务版本信息,将 Telnet 版本信息字符串 作为 Flag 提交; flag:Microsoft Windows XP telnetd 2. 通过本地PC中渗透测试平台Kali对服务器场景Windows进行渗透测…

咋做黄页网站聊城网站建设公司

docker小白第五天 docker的私有库 有些涉密的信息代码不能放在阿里云的镜像仓库,因此需要构建一个个人内网专属的私有库,将镜像或者容器代码进行推送保存。 下载镜像docker registry 执行代码docker pull registry,用于搭建私服前的准备。…

宁波市网站建设四川省建设局网站

一、背景 老铁们如果是QA,想必也遇到过类似痛点吧: 业务逻辑复杂性决定测试场景复杂性,配置测试场景常常花费大量时间,导致测试效率降低新用户的测试场景,账号可能经常注销,协助debug时需要用userid,每次都得重新抓包。而且测试账号很多,来回切,即使在本地管理userid…

网站 什么语言开发的wordpress 设置登陆

通过计算文章内容的高度来确定是否需要显示展开按钮&#xff0c;然后根据用户的点击来展开或收起文章内容。以下是一个简单的实现示例&#xff1a; <template><div class"article"><div v-if"isContentOverflow" :style"{ maxHeight:…

泉州营销型网站设计公众号微博seo

2.1线程属性属性属性类型及用途只读属性注意事项编号(id)long型,标识不同线程是不适合用作唯一标识名称(name)String型&#xff0c;区分不同线程否设置名称有助于代码调试和问题定位线程类别(daemon)boolean型&#xff0c;true为守护线程&#xff0c;false为用户线程否在start方…

济南网站推广服务济南网站定制

展开全部&#xff02;子不教父之过&#xff02;这句话应该是养不教&#xff0c;父之过。意思是仅仅是供养儿62616964757a686964616fe4b893e5b19e31333431333939女吃穿&#xff0c;而不好好教育&#xff0c;是父母的过错。出自中国的传统启蒙教材《三字经》。在中国古代经典当中…

化妆品网站优势上海人才市场档案存放中心

随着上云企业的不断增加&#xff0c;云上数据安全性成为企业面临的重要问题。为了保障企业的核心数据安全&#xff0c;越来越多的企业采购了云堡垒机来提升数据安全性。今天我们就来详细了解一下云堡垒机的作用&#xff0c;以及如何提高企业数据安全。 一、云堡垒机定义 云堡垒…

怎么找网站的根目录河北工程建设信息网

Linux命令ssh-keygen -t rsa用于生成公钥、私钥&#xff0c;其中RSA是一种非对称加密算法&#xff0c;可以用于加密和数字签名等操作。 生成公钥和私钥的原理&#xff1a; 利用RSA算法生成一对密钥&#xff0c;其中一个是私钥&#xff0c;另一个是公钥。 私钥只由持有者保存…

phpcms做网站感想关于网站开发的学校

策略模式 策略模式主要分为三部分&#xff1a; 抽象策略类AbstractStrategy&#xff1a;负责定义抽象方法&#xff0c;具体策略类的继承具体策略类ContentStrategy&#xff1a;负责策略类的具体实现上下文类&#xff1a;ContextStrategy&#xff1a;负责上游模块的调用。包含…

网站下载实体店铺托管代运营

我最近自愿将我们的最新项目升级到最新版本的Spring Platform。 Spring Platform为您提供的是整个Spring框架库集中的依赖项和插件管理。 由于我们落后了一点&#xff0c;升级确实增加了一些乐趣。 这是我遇到的事情&#xff1a; Maven&#xff1a; 我们的pom文件仍在引用&am…

唐山营销型网站建设潍坊网站建设求职简历

F - GCD or MIN 首先gcd⁡(x,y)≤min⁡(x,y)\gcd(x,y)\leq \min(x,y)gcd(x,y)≤min(x,y) 数组中任意2个数的gcd可能是一种方案&#xff0c;任意3个数的gcd可能是一种方案… 如果我们能够把原数组任意个数的gcd全部列出来&#xff0c;能够满足题意的数一定在这些数之中&#…

备案网站名称有什么用深圳专业企业网站建

ts实现的promise和js实现的promise有什么使用上的区别 类型注解 可以为 Promise 指定明确的返回类型&#xff0c;如 Promise< string>、Promise<number[]> 等。这有助于在编译时捕获类型错误类型推断 ts的类型推断功能可以自动推断出 Promise 的返回类型&#xff0…

商务网站规划与设计实训心得WordPress目录存放大小

功能说明 WAR3游戏启动后&#xff0c;可以自动获取游戏双方的玩家列表&#xff0c;然后查询显示玩家的战绩及个人信息。附带查看玩家的战绩详情、最近游戏&#xff0c;查看对手及友方的战绩详情&#xff0c;据此推算出是否开黑、是否小号等信息 使用方法及运行效果 启动 查…

大连网站设计案例办公oa系统大概多少钱

继续蓝牙系列的研究。 在上篇博客&#xff0c;通过阅读BTStack的源码&#xff0c;大体了解了其框架&#xff0c;对于任何一个BTStack的应用程序都有一个main函数&#xff0c;这个main函数是统一的。这个main函数做了某些初始化之后&#xff0c;最终会调用到应用程序提供的btst…

企业网站界面风格设计描述wordpress视频云解析

本文收录于专栏:精通AI实战千例专栏合集 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮到大家。正在不断更新中~ 一. 利用深度学习进行手势识别与控制 …

好的网站设计题目鞍山站

用VC修改注册表----让我们踏出第一步(适合初学者)转载自&#xff1a;www.csdn.net 开场白 你是不是非常期待通过自己的双手&#xff0c;写出一个有模有样的&#xff02;系统修改&#xff08;维护&#xff09;工具软件&#xff02;&#xff1f;我想答案应该是肯定的&…

威海外贸建站自豪的由wordpress驱动

场景&#xff1a;现有环境已经使用Java 8在运行业务&#xff0c;安装Jenkins后启动报错。 原因&#xff1a;因为Jenkins-2.396 依赖于Java 11 版本才能启动。 解决方法&#xff1a; yum 安装Java11 yum install java-11-openjdk-devel java-11-openjdk 或者二进制安装java11修…

广州市口碑好的网站制作排名wordpress微信服务号登录

必须要做的事情是&#xff1a; 考过GRE和TOEFL 准备推荐信 个人CV 联系导师一般就是发邮件 转载于:https://www.cnblogs.com/zhulinmails/p/5078695.html

外包网站建设优化搜狗排名

大家好&#xff0c;我是若川。持续组织了6个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列Rollu…