E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
剑指offer刷题
python_ACM模式《
剑指offer刷题
》二叉树2
题目:面试tips:面试官有可能问到:如果你需要频繁地查找第k小的值,你将如何优化算法?(见思路三)思路:思路一:二叉搜索树最大的特点就是中序遍历是递增的。因此最容易想到的是对二叉树进行中序遍历存入数组中,再遍历数组至第k个数,就是二叉树的第k小的数/节点。这样的时间复杂度就是O(N+K),空复为O(N)。显然不是最优。思路二:在思路一的基础上不采用数组,直接对二叉搜索树进行中序遍历,在遍历的过程
cuier520
·
2024-02-07 10:33
剑指offer练习
算法
python_ACM模式《
剑指offer刷题
》链表4
题目:面试tips:询问是否需要判断环,可微调下方代码。思路:思路一:判断环是否存在:设定一快一慢指针,均从头节点出发,快指针一次走两步,慢指针一次走一步。若无环,则快指针会先到达空,返回False表示无环;若有环,则快慢指针必定相遇。前者无环快指针先到达空节点好理解,后者有环为什么快慢指针必定相遇呢?这里提供两种理解方式。理解①:理解②:设慢指针刚进入环的第一个节点时,快指针(此时必定在环中)与
cuier520
·
2024-02-03 21:30
剑指offer练习
链表
数据结构
python_ACM模式《
剑指offer刷题
》二叉树1
题目:面试tips:1.询问是否可以使用双端队列(看后面思路就可知为什么要问这个)思路:时复和空复都为O(n)思路一:利用双端队列。总体思想是利用二叉树层序遍历(二叉树的层序遍历就是用队列dq,且从左往右每一层存入队列中),但这里的双端队列使用在path中,即存储路径path时,遇到奇数列,从dq中读出来的节点进行尾插入path;遇到偶数列,从dq中读出来的节点进行头插入。例如:层序遍历对上述二叉
cuier520
·
2024-02-03 21:27
剑指offer练习
python
开发语言
python_ACM模式《
剑指offer刷题
》链表2
题目:例如面试tips:询问有无时间复杂度或空间复杂度的限制。思路:本题的本质就是复杂链表的深拷贝1.暴力解法→第一次遍历原链表时构建一个复制了next的新链表,第二次遍历原链表,对每个原链表的节点的random从头寻找,同时同步在新链表寻找,即可找到复制链表每个节点的random。时复O(N^2),空复O(1)2.用空间换取时间,利用哈希表。在第一次遍历原链表时存储(原链表节点,新链表节点)的映
cuier520
·
2024-01-28 19:27
剑指offer练习
链表
数据结构
python_ACM模式《
剑指offer刷题
》链表3
题目:注意:剑指offer上对这道题目的描述是给定的删除节点是节点指针。这表明这道题可以用时间复杂度为O(1)的方式解决。而leetcode上对类似本题的描述是:给定删除节点是节点值,这决定了本题时间复杂度必然至少为O(N)。因为必定要从头遍历链表。面试tips:1.注意以上两种问法的区别。若是第一种,最优的方式时复为O(1)。2.这道题默认了所给的删除节点就在链表上,可以跟面试官提一下,显示对此
cuier520
·
2024-01-28 19:26
剑指offer练习
链表
数据结构
python_ACM模式《
剑指offer刷题
》链表1
题目:面试tips:询问面试官是否可以改变链表结构思路:1.翻转链表,再遍历链表打印。2.想要实现先遍历后输出,即先进后出,因此可借助栈结构。3.可用隐式的栈结构,递归来实现。代码实现:1.classListNode:def__init__(self,val=0,next=None):self.val=valself.next=nextclassmyClass:defprintList(self,
cuier520
·
2024-01-23 03:44
剑指offer练习
链表
数据结构
LeetCode
剑指offer刷题
笔记
本文仅仅是个人写代码时遇到的问题总结!但也欢迎有大佬指出我理解上的错误!三刷题单0303.数组中重复的数字很简单的题。三刷主要看了不开任何空间的方法。主要思路是,让数据归位。一开始数据是混乱的,而且题目给出的数据范围就是在0~n-1。如果nums[i]!=i,数据不在原本的位置上,那就跟这个位置的数据交换nums[i],nums[nums[i]]相等就i++;continue;如何确定重复?在后面
零子若
·
2024-01-14 08:32
LeetCode
leetcode
算法
数据结构
牛客
剑指offer刷题
记录(四)
包含min函数的栈最小栈问题,这里需要在class中维护两个栈,一个栈用于正常的push、pop、top操作,另一个栈就是维护当前最小值的栈。具体做法是,假设现在s2是最小栈,栈顶元素时当前最小值,此时push一个新的值value过来,我们判断,如果value比最小栈的栈顶元素小,那么,需要将value作为新的最小值push到栈中,否则的话则把当前最小值作为本次插入之后的最小值再push一次,即:
NearXDU
·
2023-11-29 00:04
笔试面试
剑指offer
牛客
剑指offer刷题
回溯篇
文章目录矩阵中的路径题目思路代码实现机器人的运动范围题目思路代码实现矩阵中的路径题目请设计一个函数,用来判断在一个n乘m的矩阵中是否存在一条包含某长度为len的字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。例如:[abce][sfcs][adee]矩阵中包含一条字符串"
惜许
·
2023-11-29 00:30
数据结构与算法
算法
java
牛客
剑指offer刷题
——替换空格笔记
classSolution{public:voidreplaceSpace(char*str,intlength){inta=0;intb=length;for(inti=0;i=0&&b!=i;--i){if(str[i]!=''){str[--b]=str[i];}else{str[--b]='0';str[--b]='2';str[--b]='%';}}}};代码如上思路:先遍历数组,找出所
金鲤鱼ya
·
2023-11-29 00:30
剑指offer刷题
笔记
算法
c++
牛客
剑指offer刷题
队列&栈篇
文章目录用栈实现队列题目思路代码实现最小栈题目思路代码实现验证栈序列题目思路代码实现翻转单词序列题目思路代码实现滑动窗口最大值题目思路代码实现用栈实现队列题目请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现MyQueue类:voidpush(intx)将元素x推到队列的末尾intpop()从队列的开头移除并返回元素intpeek(
惜许
·
2023-11-29 00:59
数据结构与算法
java
数据结构
算法
牛客
剑指offer刷题
动态规划篇
文章目录连续子数组的最大和题目思路代码实现连续子数组的最大和(二)题目思路代码实现跳台阶题目思路代码实现斐波那契数题目代码实现正则表达式匹配【搞不懂、没搞懂、真不会】题目思路代码实现跳台阶扩展问题题目思路代码实现矩形覆盖题目思路代码实现买卖股票的最好时机(一)题目思路代码实现礼物的最大价值题目思路代码实现无重复字符的最长子串题目思路代码实现把数字翻译成字符串题目思路代码实现连续子数组的最大和题目给
惜许
·
2023-11-29 00:59
数据结构与算法
动态规划
算法
牛客
剑指offer刷题
排序篇
文章目录数组中重复的数字题目思路代码实现中等难度思路代码实现数组中的逆序对题目思路代码实现最小K个数思路代码实现数据流中的中位数题目思路代码实现数组中重复的数字题目在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的
惜许
·
2023-11-29 00:27
数据结构与算法
算法
剑指Offer刷题
笔记--Num03-10
目录1--数组中重复的数字(03)2--二维数组中的查找(04)3--替换空格(05)4--从尾到头打印链表(06)5--重建二叉树(07)6--用两个栈实现队列(09)7--斐波拉契数列(10)8--青蛙跳台阶问题(10)1--数组中重复的数字(03)解决方法1:基于哈希表,将数组中的元素视为Key,其对应的Value设为True;遍历每一个元素,查询元素Key对应的Value,若为True表示
晓晓纳兰容若
·
2023-11-23 09:01
数据结构
牛客网-
剑指offer刷题
python刷题笔记基础题目知识点笔记J27力扣509斐波那契数列力扣斐波那契数递归方法会超时,采用循环方法JZ8跳台阶跳台阶和J27思路一样JZ9跳台阶扩展问题变态跳台阶和J27,JZ8思路一样,循环,但是找规律更简单JZ10矩形覆盖矩形覆盖数组1.纯数组操作2.有序的用二分法.后面单独出二分法JZ1二维数组中的查找二维数组中俄查找有三种方法,直接变成一维数组,一种是In在不在,一种是二分法,(
平行世界里的我
·
2023-11-19 22:32
力扣刷题
python
剑指offer刷题
笔记-篇2
文章目录剑指offer前言机器人的运动范围剪绳子二进制中1的个数数值的整数次方从1到n的位数移除链表元素删除链表中重复的结点*正则表达式匹配*表示数值的字符串调整数组顺序链表中倒数第k个节点链表的环反转链表合并链表剑指offer前言主要刷题平台为牛客网,部分题目使用LeetCode和ACwing作为辅助。每题均包含主要思路、详细注释、时间复杂度和空间复杂度分析,每题均是尽可能最佳的解决办法。机器人
夏海藻Liam
·
2023-11-19 22:31
算法
leetcode
算法
c++
剑指OFFER刷题
笔记 Kaze-1
剑指OFFER刷题
记录数据结构:链表,队列,栈JZ24反转链表JZ25合并两个排序的链表JZ52找两个链表的第一个公共结点数据结构:图论,树JZ82二叉树中和为某一值的路径(一)JZ34二叉树中和为某一值的路径
Kaze-1
·
2023-11-19 22:27
算法&刷题
链表
数据结构
c++
【LeetCode &
剑指offer刷题
】动态规划与贪婪法题11:121. Best Time to Buy and Sell Stock(系列)...
【LeetCode&
剑指offer刷题
】动态规划与贪婪法题11:121.BestTimetoBuyandSellStock(系列)【LeetCode&
剑指offer刷题
笔记】目录(持续更新中...)BestTimetoBuyandSellStock
wikiwen
·
2023-11-14 19:41
《剑指offer》刷题笔记(举例让抽象具体化):二叉搜索树的后序遍历序列
/github.com/WordZzzz/Note/tree/master/AtOffer刷题平台:https://www.nowcoder.com/题 库:剑指offer编 者:WordZzzz
剑指
WordZzzz
·
2023-11-13 15:11
剑指offer
剑指offer
BST
后序遍历
剑指offer刷题
————二叉搜索树的后序遍历序列
问题重述:题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false.假设输入的数组任一两个数组都不相同。思路解析:首先这个数组是搜索二叉树的后序遍历,因为搜索二叉树满足左小右大的规则,并且后序遍历中最后一个遍历的是根节点,因此,我们能根据最后一个数字将数组分为两部分,前面的一部分都比最后一个节点小,后面的一部分都比最后一个节点大。因此,整体思路
WolfOnTheWay
·
2023-11-08 11:14
刷题
二叉树
数据结构
算法
leetcode
剑指offer刷题
全纪录
目录技巧总结:1.找出数组中重复的数字不修改数组找出重复的数字(*)2.二维数组中查找3.替换空格4.从尾到头打印链表5.前序中序遍历建树6.中序遍历下一个节点7.两个栈来实现一个队列8.斐波那契数列跳台阶变态跳台阶矩形覆盖9.旋转数组的最小数字(***)下面两题为DFS的应用10.矩阵中的路径(*)11.机器人的运动范围12.割绳子(*)位运算11.二进制中1的个数(*)延伸:判断一个数是不是2
seeInfinite
·
2023-11-05 08:25
LeetCode刷题记录
leetcode
牛客
剑指offer刷题
链表篇
文章目录从尾到头打印链表题目思路代码实现反转链表题目思路代码实现合并两个有序链表题目思路代码实现两个链表的第一个共同结点题目思路代码实现链表中环的入口结点题目思路代码实现链表中倒数第K个节点题目思路复杂链表的复制题目思路1【时间复杂度和空间复杂度均为O(n)】实现代码1思路2【直接复制链表】代码实现2删除链表中的重复结点题目思路代码实现删除链表的节点题目代码实现从尾到头打印链表题目输入一个链表的头
惜许
·
2023-11-01 10:23
数据结构与算法
1024程序员节
牛客
剑指offer刷题
二叉树篇
文章目录二叉树的深度题目思路代码实现二叉树的深度题目给定一个二叉树root,返回其最大深度。二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。思路采用递归的思想,分别计算根节点左右子树深度,然后比较左右子树深度大小,最大的值+1即为所求结果;代码实现publicstaticintmaxDepth(TreeNoderoot){if(root==null){return0;}intlef
惜许
·
2023-11-01 10:50
数据结构与算法
算法
剑指offer刷题
专栏——专题一:链表
一、学链表我们需要掌握什么?链表在面试中出现频率排行前2的算法题,因为链表题的特点是:描述非常简单,基本不用花时间去读题,在面试有些的三四十分钟里,链表非常受欢迎。我们先来说一说学习链表时,我们最需要掌握的是什么?首先我认为大部分的链表题,解法思路都相对简单,双指针占一半以上,但是上了战场,写链表题的时候,非常容易出错,常见错误是:1、没有考虑节点为null导致空指针异常。2、容易出现节点位置定位
AAJun022
·
2023-10-18 11:07
剑指offer刷题
链表
数据结构
leetcode
算法
软件工程
c++
Leetcode
剑指offer刷题
笔记20210421
方法栈堆滑动窗口动态规划贪心算法二叉树深度遍历BFS广度优先DFS位运算递归回溯数组链表字符串其他栈用两个栈实现队列E用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回-1)一个栈A用来模拟添加元素到队列尾,另一个B存A中元素倒叙,用来取出队列头c
吃一个橘子吧
·
2023-10-17 23:23
数据结构与算法
算法
数据结构
剑指offer刷题
记录
pass区03数组中重复的数字剑指Offer05.替换空格剑指Offer58-II.左旋转字符串剑指Offer06.从尾到头打印链表剑指Offer18.删除链表的节点剑指Offer22.链表中倒数第k个节点剑指Offer25.合并两个排序的链表剑指Offer21.调整数组顺序使奇数位于偶数前面剑指Offer58-I.翻转单词顺序剑指Offer10-I.斐波那契数列剑指Offer10-II.青蛙跳台
bob62856
·
2023-10-14 17:43
Algorithm
leetcode
剑指offer刷题
记录--树
1.JZ55二叉树的深度1.递归(后序遍历,,无法用栈)使用递归方法对每个结点进行递归,直到找到叶子节点,层层返回,每一层+1,最终即得树的深度。(这个遍历方式是后序遍历)动图/*structTreeNode{intval;structTreeNode*left;structTreeNode*right;TreeNode(intx):val(x),left(NULL),right(NULL){}}
读书健身敲代码
·
2023-10-09 19:32
算法与数据结构
C++编程
数据结构
c++
算法
剑指offer刷题
记录
剑指offer一、字符串1、注意事项2、例题(1)168.Excel表列名称进展转换问题一般是0-25为26进制,但是题目中给出了1-26的映射关系,使用给出一个值转成字符表示的时候,每次取余的时候都要减一StringBufferstr=newStringBuffer();//Java中StringBuffer带reverse()//C++中有这个reverse函数,不过要引#include包fo
爱喜剧的魔王
·
2023-10-09 19:31
笔试复习
链表
数据结构
老卫带你学---
剑指offer刷题
系列(16.合并两个排序的链表)
16.合并两个排序的链表问题:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解决:思想:这道题可以使用递归实现,新链表也不需要构造新节点,我们下面列举递归三个要素终止条件:两条链表分别名为l1和l2,当l1为空或l2为空时结束返回值:每一层调用都返回排序好的链表头本级递归内容:如果l1的val值更小,则将l1.next与排序好的链表头相接,l2同理O(
老卫带你学
·
2023-10-07 11:31
剑指offer
python
leetcode
剑指offer刷题
归类之 二 动态规划篇
最长公共子串1.给定两个字符串A和B,同时给定两串的长度n和m。测试样例:"1AB2345CD",9,"12345EF",7返回:4publicclassLongestSubstring{//最长公共子串要求是连续的publicintfindLongest(StringA,intn,StringB,intm){intmax=0;int[][]dp=newint[n][m];for(inti=0;i
茴香豆的茴有六种写法
·
2023-09-25 05:59
数据结构与算法
leetcode
剑指offer刷题
归类之 一 排序篇
从有n个元素的乱序数组中找出第k大的元素方法一堆排序时间复杂度o(nlogk)不推荐方法二基于快速排序的方法,时间复杂度为o(n)选一个枢轴点,用快排的方法将数组分为两部分,位于枢轴点左边的数都比它大,位于枢轴点右边的数都比它小,1)如果枢轴点的索引刚好是k-1,则此时它对应的就是数组的第k大的数;2)如果比k-1大,那么第k大的数位于它的左边部分;3)如果比k-1小,那么第k大的数位于它的右边部
茴香豆的茴有六种写法
·
2023-09-25 05:29
数据结构与算法
leetcode
剑指offer刷题
归类之 四 经典算法题
目录约瑟夫环问题寻找第k小的数2sum3sum问题数组中超过一半或者超过1/3的数约瑟夫环问题/***https://blog.csdn.net/weixin_38214171/article/details/80352921*/publicclassJosephCircle{publicstaticvoidmain(String[]args){System.out.println(joseph(
茴香豆的茴有六种写法
·
2023-09-25 05:59
数据结构与算法
【
剑指offer刷题
记录 java版】链表双指针
本系列文章记录labuladong的算法小抄中剑指offer题目【
剑指offer刷题
记录java版】链表双指针剑指OfferII025.链表中的两数相加剑指Offer25.合并两个排序的链表剑指Offer52
小鲨鱼冲冲冲
·
2023-09-21 09:41
剑指offer刷题记录
java
链表
开发语言
剑指offer刷题
记录(C++版本)(之四)
31.整数中1出现的次数(从1到n整数中1出现的次数)题目:求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1到n中1出现的次数)。思路:以下来自牛客[Duqcuid]
傑jay
·
2023-09-20 19:50
【
剑指Offer刷题
小记】删除链表中的重复节点(JAVA版)
题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5处理后为1->2->5问题分析:创建两个指针,一个指针p用来遍历原链表,另一个指针q用来构建新链表,同时再定义一个节点指向新链表的头节点。判断p与p的下一节点的值是否相等,若不等则添加到新链表中,否则继续判断后续节点的值与当前节点是否相等。此外,
park_one
·
2023-09-17 14:15
【
剑指Offer刷题
小记】二叉树的下一个节点(JAVA版)
题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。问题分析:根据中序遍历的特点,当前节点的下一节点有三种可能,举例如下图:(1)当前节点有右孩子,那么下一节点就是该右孩子的最左叶节点。如上图B节点(2)当前节点没有右孩子,并且当前节点是其父节点的右孩子,那么下一节点是其父节点的父节点。如上图D节点(3)当
park_one
·
2023-09-17 10:03
剑指offer刷题
笔记 开端
剑指offer刷题
笔记文章目录
剑指offer刷题
笔记注意内容时间复杂度C++语法知识补充:优先级new和delete树的遍历算法模板string类判断字符串为空归并递归整数二分算法模板注意内容map是O
VengaZ
·
2023-09-15 22:08
算法笔记
笔记
深度优先
算法
「笔记」OfferCoder:
剑指Offer刷题
笔记
剑指Offer刷题
笔记1.数组中重复的数字2.二维数组中的查找3.替换空格4.从尾到头打印链表1.数组中重复的数字描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。
技术路上的探险家
·
2023-09-14 21:27
面试
笔记
python
java
【
剑指Offer刷题
小记】和为S的连续正数序列(JAVA版)
题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?GoodLuck!输出描述:输出所有和为S的连续正数序列。序列内按照
park_one
·
2023-09-09 06:32
和为s的连续正数序列
剑指offer刷题
系列:面试题57-II.和为s的连续正数序列暴力解法:针对每种解法检查是否可以等于target/***@param{number}target*@return{number[][]}*
砂壶
·
2023-09-06 21:04
【
剑指offer刷题
】查找算法
记录在Leetcode刷《剑指offer》的笔记,希望提高自己的算法基础和编程水平。这一篇文章刷的是查找算法的题目集合,在CSDN做一下记录,随时更新,一起学习吧。如果顺序查找耗时间比较多,则重点考虑使用二分查找或者哈希查找算法。刷题链接:https://leetcode-cn.com/leetbook/read/illustration-of-algorithm/59bx1r/1.剑指Offer
非晚非晚
·
2023-08-25 09:10
leetcode
LeetCode
剑指offer
查找算法
二分查找
剑指offer刷题
总结(c++)
部分是官方题解或者是别人比较好的思路,有一些是自己写的。准备边刷题边整理,仅作为自己的学习笔记!按题型分类1.数组JZ1.二维数组的查找JZ6.旋转数组的最小数字JZ28.数组出现次数超过一半的数字JZ29.最小的k个数JZ32.把数组排成最小的数JZ35.数组中的逆序对JZ37.数字在排序数组中出现的次数JZ40.数组中只出现一次的数字JZ42.和为S的两个数字JZ50.数组中重复的数字JZ51
syuichihann
·
2023-08-15 19:13
c/c++
c++
剑指offer刷题
18.重建二叉树输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树。classSolution{public:mapmp;TreeNode*buildTree(vector&preorder,vector&inorder){intn=inorder.size();for(inti=0;i&preorder,vector&inorder,intpl,intpr,intil,intir){if(p
haohaoxuexilmy
·
2023-08-08 19:36
leetcode
算法
职场和发展
剑指offer刷题
笔记--Num61-68
1--扑克牌中的顺子(61)主要思路:五个数是顺子的充要条件:①最大值-最小值#include#includeclassSolution{public:boolisStraight(std::vector&nums){intmax=-1,min=14;//初始化最大值和最小值for(intnum:nums){if(num==0)continue;//跳过大小王if(S.find(num)!=S.e
布吉岛呀~
·
2023-08-03 10:27
c++
算法
【
剑指Offer刷题
小记】按之字形顺序打印二叉树(JAVA版)
题目描述:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。问题分析:利用两个栈,分别存入奇数行和偶数行的节点。每次遍历栈中的节点,并把每个弹出节点的左右孩子存入另一个栈中,弹出的节点顺序即为之字形顺序。具体流程如下图:代码截图:
park_one
·
2023-08-01 18:09
剑指offer刷题
笔记整理
剑指offer刷题
笔记day102回文链表03I数组中重复的是数字03II不修改数组找出重复的数字04二维有序数组的查找05替换空格06从尾到头打印链表07根据前序和中序重新构建二叉树08二叉树中序遍历的下一个节点
ML_python_get√
·
2023-07-31 14:12
数据结构和算法
算法
leetcode
链表
剑指offer刷题
笔记--Num51-60
1--数组中的逆序对(51)主要思路:基于归并排序,视频讲解参考:数组中的逆序对#include#includeclassSolution{public:intreversePairs(std::vector&nums){if(nums.size()&nums,intleft,intright){if(left>=right)return0;intmid=left+(right-left)/2;i
布吉岛呀~
·
2023-07-19 23:30
c++
【
剑指Offer刷题
小记】对称的二叉树(JAVA版)
题目描述:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。问题分析:二叉树对称,那么对于每个非叶子节点,其左右孩子的值相同,且左子树的左子树和右子树的右子树相同,右子树的左子树和左子树的右子树也相同,采用递归的方法即可判断整棵树是否对称。代码截图:
park_one
·
2023-07-17 05:19
剑指offer刷题
笔记--Num41-50
1--数据流中的中位数(41)主要思路:维护两个优先队列,Q1大数优先,存储比中位数小的数;Q2小数优先,存储比中位数大的数;当存储的数为偶数时,Q1.size()==Q2.size(),中位数为:(Q1.top()+Q2.top())/2.0当存储的数为奇数时,Q2.size()=Q1.size()+1,中位数为Q2的队头元素因此插入元素,要确保Q2.size()>=Q1.size();同时插入
布吉岛呀~
·
2023-07-14 23:05
leetcode
【
剑指Offer刷题
小记】把二叉树打印成多行(JAVA版)
题目描述:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行问题分析:本题实质上就是层次遍历,只不过需要将遍历序列按层输出。对于层次遍历,方法是利用队列,将头节点取出时,将该节点的子节点存入队列。这里要按层输出,可以添加一个用来记录队列大小的变量,表示每一层的节点的数量,如此循环即可得到结果。代码截图:
park_one
·
2023-06-21 07:44
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他