首页 > 编程语言 >11.13算法

11.13算法

时间:2023-11-13 21:03:29浏览次数:35  
标签:count cur 11.13 二叉 算法 null root

题目

二叉搜索树中第K小的元素
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。

示例 1:

输入:root = [3,1,4,null,2], k = 1
输出:1
示例 2:

输入:root = [5,3,6,2,4,null,null,1], k = 3
输出:3

提示:

树中的节点数为 n 。
1 <= k <= n <= 104
0 <= Node.val <= 104

进阶:如果二叉搜索树经常被修改(插入/删除操作)并且你需要频繁地查找第 k 小的值,你将如何优化算法?

相关标签

C++

答案

stack<TreeNode*> s;
TreeNode *cur = root;
int count =0;
while(cur != nullptr || !s.empty()){
    while(cur != nullptr){
        s.push(cur);
        cur = cur->left;
    }
    auto c = s.top();
    s.pop();
    count++;
    if(count ==k){
        return c->val;
    }
    cur = cur->right;
}
return -1;

关键

中序遍历就可以完成从小到达排序,因为是二叉搜索树

标签:count,cur,11.13,二叉,算法,null,root
From: https://www.cnblogs.com/minipython-wldx/p/17830133.html

相关文章

  • 每日总结11.13
    外观模式1、理解外观模式的动机,掌握该模式的结构;2、能够利用外观模式解决实际问题。实验任务:计算机开启在计算机主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(HardDisk)的读取(......
  • 算法学习笔记(37): 矩阵
    一切线性操作都可以归为矩阵乘法--bySmallBasic本文是拿来玩耍,而不是学习的!目录线性递推超级矩阵快速幂!矩阵与邻接矩阵矩阵与线段树矩阵与FFT矩阵与期望不知道还能扯啥了矩阵的加法,要求两个矩阵大小相等,于是可以对位单点相加。\[C_{i,j}=A_{i,j}+B_{i,j}\]关于矩......
  • 每日总结11.13
    今天参加了分级测试,找到了有关自己的很多问题和薄弱之处,同时也学到了一点东西,三小时并没有写出来什么好东西,我觉得jsp不太好用,但是springboot应用的也不太熟练,还是因为自己不太熟练,除此之外,在收到题目之后我没有理清思路,以为自己没看完题目就直接做可以快点做完,结果却发现思路不明......
  • 11.13测试总结
    测试中出现了一些没有见过的错误,又调试了半天,在引入mysql数据库时的一些细节问题得到了解决,对整体结构的构造更加清晰,并且学习到了一些新知识,可以在同一界面中放置不同角色的因素,然后不同的角色对应不同的元素展示,进而减少工作量,同时在此次测试中也暴露了一些问题,对项目的整体结......
  • OAuth1.0的在http请求中的使用方式以及签名算法说明
    1、在httprequestheader的Authorization中,其格式为Authorization:"OAuthoauth_consumer_key="OAuthConsumeKey",oauth_token="OAuthToken",oauth_signature_method="HMAC-SHA256",oauth_timestamp="OAuthTimestamp",oauth_nonc......
  • 11.13
    今天在建民老师的自评测试中,我深刻认识到了自己的不足。之前我尝试做了上学期期末考试的试题,但仅仅用了大约4个小时的时间完成了三个表的增删改查,而且连深层的业务逻辑如审批都没有尝试。我只获得了期末考试一半左右的分数,这说明我在增删改查的练习上还有很大的不足。在今天的考试......
  • 11.13
    T1很有意思的贪心。显然只有四种情况:\(a\)为\(1/2\),\(b\)为\(1/2\)。那么为这四种情况分别记录一个\(vector\)。我们记录\(suma\)为\(a\)的总和,\(sumb\)为\(b\)的总和。那么显然我们需要让这个分配方式达到\(suma/2\)和\(sumb/2\)。考虑贪心,先将两个都卡在同......
  • 【C++】【图像处理】均值滤波和高斯滤波(低通滤波)算法解析(以.raw格式的图像为基础进行
    1voidmeanFilter(BYTE*image,intwidth,intheight,BYTE*outImg)2{3//均值滤波4intsmth[9];5inti,j,m,n;6BYTEblock[9];78//高斯卷积核初始化9smth[0]=1,smth[1]=2,smth[2]=1,10smth[3]=2,......
  • 11.13每日总结
    今天完成了软件射进和人机交互的部分实验,主要进行了话题的总结,对我们的话题大学生日常消费的调查进行了总结,对照片进行了汇总并且生成了相应的图表。 ......
  • 11.13周一分级测试反思
    这次分级考试没有做好,一共A,B,C,D四个等级,只做到了c等级,B等级的选课的业务逻辑没有想出来,感觉还是经验不太足,现在反思一下造成这种情况的原因。先说上一周做了什么吧,上周就是发了期末试题后,回来尝试看了看,但是第一步就出错了,springboot工程崩了,在一直在找问题,大概陆陆续续找了一天,终......