LeetCode—230. 二叉搜索树中第K小的元素

230. 二叉搜索树中第K小的元素

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

考察重点:中序遍历,借助go多线程实现达到条件后快速结束递归 。

func findK(root *TreeNode, k int, m *int, wait *sync.WaitGroup) { //中序遍历if root == nil {return}findK(root.Left, k, m, wait)*m = *m + 1  //m记录整体的序数if *m == k { //当m==k,停止这个goroutine,m中存入相应的Val值*m = root.Valwait.Done()                 //wait.Done()减一后,主函数向下执行到return需要一段时间time.Sleep(3 * time.Second) //所以这里停止3s,给主函数向下执行的时间}findK(root.Right, k, m, wait)}
func KthSmallest(root *TreeNode, k int) int {var m int = 0wait := sync.WaitGroup{}wait.Add(1)go findK(root, k, &m, &wait)wait.Wait() //找到m后,主程序继续运行返回mreturn m
}

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

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

相关文章

Oracle执行计划相关(待补充)

执行计划并不一定保证是最新的.比如下面很简单的sqlSELECT A.CPCIDEAIDFROM CPCIDEA AWHERE A.CPCGRPID 2001;总是提示全表扫,重新编译cpcgrpid这个索引之后,就OK了.转载于:https://www.cnblogs.com/highriver/archive/2011/05/23/2054317.html

内存区划分;内存分配;堆、栈概念分析;动态内存管理数据结构及程序样例;核心态与用户态...

一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静…

Packet for query is too large(mysql写入数据过大)

错误现象:(com.logicaldoc.core.security.dao.HibernateUserDAO: 102) -- Packet for query is too large (1086 > 1024). You can change this value on the server by setting the max_allowed_packet variable.org.hibernate.exception.GenericJDBCException:…

版权的盈利模式

昨天在PDAFANS论坛xuxinyi的“城市引擎”注册问题引起了很多人的讨论,我觉得这盈利模式是一个值得探讨的问题,现在软件在变,就像xuxinyi的“梅花输入法”发展到“城市引擎”一样,从提供功能发展到更多提供服务,.NET、X…

Virtural Box 虚拟ubuntu 修改分辨率

来源 http://www.diybl.com/course/6_system/linux/Linuxjs/2008614/125481.html VirtualBox 在windows XP下虚拟Ubuntu全屏的解决方法 默认安装后声音、网络一切正常,就是不能完全全屏,ubuntu作为客机的分辨率只能调到800600,从网上挖的&am…

LeetCode—236. 二叉树的最近公共祖先

236. 二叉树的最近公共祖先 题目描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的…

Chord算法

转自:http://blog.csdn.net/wangxiaoqin00007/article/details/7374833 虽然网上搜索CHord,一搜一大堆,但大多讲得不太清楚明白。今天发现一篇blog,图文并茂,逻辑清楚且易懂,特意转载收藏。 P2P的一个常见问…

ARP、Tracert、Route 与 NBTStat命令详解

ARP   ARP是一个重要的TCP/IP协议,并且用于确定对应IP地址的网卡物理地址。实用arp命令,我们能够查看本地计算机或另一台计算机的ARP高速缓存中的当前内容。此外,使用arp命令,也可以用人工方式输入静态的网卡物理/IP地址对&…

地籍宗地出图(一)

在ArcGIS中,我们经常需要标注;在地籍处理中,需要承包地出图。具体的出没有可参考的标准。通常软件中的做法有: 第一种,以村组为背景,将某户的承包地选择出来,并标黑。这样的结果,领导…

USACO 3.3.2 Shopping Offers解题报告

写在前面:因为之前没写的C的USACO Training的解题报告太多……所以就不写了,要是想要代码可以联系我:xiedong_1993foxmail.com 这题就是传说中的五维背包,其实写起来难度不大。但是我写的时候可以说是遇到了重重困难。因为我对C的…

LeetCode—238. 除自身以外数组的乘积

238. 除自身以外数组的乘积 题目描述: 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。…

黑马程序员_java基础笔记(15)...银行业务调度系统_编码思路及代码

—————————— ASP.NetAndroidIOS开发、.Net培训、期待与您交流!—————————— 1,面试题目:银行业务调度系统 模拟实现银行业务调度系统逻辑,具体需求如下: 银行内有6个业务窗口,1 — 4号窗口…

一次非常有意思的sql优化经历

原文:一次非常有意思的sql优化经历场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表 create table Course(c_id int PRIMARY KEY,name varchar(10))数据100条 学生表: create table Student(id int PRIMARY KEY,name varchar(10))数据70000条 学生成绩表SC…

Go Out Otherwise Shut Up

Shut Up For Ever! Work ,Work, Right Now! 下面盗用一下PLMM的格言给自己Add Oil。 a za a za fighting! Forge Ahead,Never Retreat! 这两句还是蛮有气势的,哈哈。 转载于:https://www.cnblogs.com/Farseer1215/archive/2005/05/07/150413.html

setCharacterEncoding和setContentType

request.setCharacterEncoding()是设置从request中取得的值或从数据库中取出的值 response.setContentType("text/html;charsetgb2312")是设置页面中为中文编码 前者是设置动态文字(参数,数据库)&#xff0c…

LeetCode—239. 滑动窗口最大值(困难)

239. 滑动窗口最大值(困难) 题目描述: 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值 。 …

intellij idea搭建springboot

intellij idea2018.3创建springboot项目1.new > spring initilizer > web > spring web initializer运行项目方法一:导航板上的命令台图标,输入命令:mvn springboot:run,即可看到running,浏览器测试控制器方法,这种方法暂…

logstash

http://www.cnblogs.com/fangjian0423/p/logstash-elasticsearch-build.html http://chenlinux.com/2013/07/11/howto-filter-count-in-logstash/

连连看路径求解的算法

这是路径求解的算法做一个简单的介绍,适合入门者;首先是 x to x ,这个是横向比较直连然后是 y to y ,这个是竖向比较直连然后是 1个折点算法很简单;比如7x3的000100000000000000001p1 是 3,0p2 是 6,2那么折点是000100x0000000000x001折点1是 6,0 ,折点2是 3,2注意这个值和p1,p…

LeetCode—240. 搜索二维矩阵 II

240. 搜索二维矩阵 II 题目描述: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 考察重点:简单的二维矩阵搜索 func SearchMatr…