LeetCode #272 - Closest Binary Search Tree Value II

@transactional滥用导致数据源连接池耗尽问题 阅读详情

题目描述:

Given a non-empty binary search tree and a target value, find k values in the BST that are closest to the target.

Note:

• Given target value is a floating point.

• You may assume k is always valid, that is: k ≤ total nodes.

• You are guaranteed to have only one unique set of k values in the BST that are closest to the target.

Example:

Input: root = [4,2,5,1,3], target = 3.714286, and k = 2

    4

   / \

  2   5

 / \

1   3

Output: [4,3]

Follow up:
Assume that the BST is balanced, could you solve it in less than O(n) runtime (where n = total nodes)?

由于是求k个和目标值最接近的数,那么我们可以中序遍历二叉搜索树,这k个数必定是遍历序列中间的一段,那么用队列维护这k个数,每次遍历到一个节点都要和队首元素比较。

class Solution {
public:
    vector<int> closestKValues(TreeNode* root, double target, int k) {
        queue<int> q;
        inorder(root,q,target,k);
        vector<int> result;
        while(!q.empty())
        {
            result.push_back(q.front());
            q.pop();
        }
        return result;
    }
    
    void inorder(TreeNode* node, queue<int>& q, double target, int k)
    {
        if(node==NULL) return;
        inorder(node->left,q,target,k);
        if(q.size()<k) q.push(node->val);
        else
        {
            if(abs((double)node->val-target)<abs((double)q.front()-target))
            {
                q.pop();
                q.push(node->val);
            }
        }
        inorder(node->right,q,target,k);
    }
};

 

【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 07 堆、栈、表、矩阵、集合、队列、数组、字符串、树、图、动态规划、结构体、元组的算法01 当前段必须包含所有字符的最后出现位置。1. 字符串分割成最多片段2. 基因序列功能域划分3. 文本段落划分4. 音频声道分离5. 图像色彩分区6. 社交网络社群划分7. 蛋白质结构域8. 音乐乐章分段9. 代码模块划分10. 章节划分特征:一次扫描,贪心确定边界。 阅读详情

相关推荐

uniapp [全端兼容] - 实现内网使用天地图离线地图,详解项目加载天地图的离线地图服务器部署与使用教程示例源码,Uniapp如何实现天地图的离线加载部署在内网访问(兼容H5、微信小程序、App)

uniapp天地图如何离线访问,无需网络调用天地图API,天地图离线地图,天地图——内网使用离线地图,uniapp中加载天地图的离线地图,uniAPP实现天地图离线访问,在内网中无法直接使用外网天地图资源怎么办,在uni-app中加载地图 -使用天地图的瓦片数据。UNIAPP天地图离线怎么使用,内网部署天地图,天地图离线瓦片,部分瓦片数据,天地图如何离线,下载天地图离线服务,并用Uniapp+天地图离线部署,天地图私有化部署,实现离线加载天地图,Java+uniapp天地图离线开发,uniapp项目中无网络

🏆 前端领域优质创作者 4834

leetcode 272. 最接近的二叉搜索树值 II

困难题,优先队列然后就可以算出来

邹九的个人博客 627

002-Model-Based Design for embedded systems.pdf

This book provides a compilation of the work of internationallyrenowned authors on Model-Based Design.

LeetCode272. 最接近的二叉搜索树值 II

给定二叉搜索树的根 root 、一个目标值 target 和一个整数 k ,返回BST中最接近目标的 k 个值。你可以按 任意顺序 返回答案。题目 保证 该二叉搜索树中只会存在一种 k 个值集合最接近 target输入: root = [4,2,5,1,3],目标值 = 3.714286,且 k = 2输出: [4,3]示例 2:输入: root = [1], target = 0.000000, k = 1输出: [1]提示:二叉树的节点总数为 n。

步子哥的博客 874

leetcode272.基本计算器 II (两种思路,java实现!)

227. 基本计算器 II 难度中等163收藏分享切换为英文关注反馈 实现一个基本的计算器来计算一个简单的字符串表达式的值。 字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。 示例 1: 输入: "3+2*2" 输出: 7 示例 2: 输入: " 3/2 " 输出: 1 示例 3: 输入: " 3+5 / 2 " 输出: 5 说明: 你可以假设所给定的表达式都是有效的。 请不要使用内置的库函数 eval。 思路1: 将表达式(中缀)转化为后缀 将后缀

Viper的程序员修炼手册 801

LeetCode272场周赛

2021.12.19LeetCode272场周赛 2108. 找出数组中的第一个回文字符串 思路 逐个判断是否为回文串 判断时将两个指针放在头尾 逐一匹配 代码 class Solution { public: string firstPalindrome(vector<string>& words) { for (string s : words) { int i = 0, j = s.size() - 1; b

shenyuhan的博客 684

leetcode272. 最接近的二叉搜索树值 II

给定一个不为空的二叉搜索树和一个目标值 target,请在该二叉搜索树中找到最接近目标值 target 的 k 个值。

OceanStar的博客 831

LeetCode 272. Closest Binary Search Tree Value II - 二叉搜索树(Binary Search Tree)系列题7

​这题也是给定一个二叉搜索树和一个目标数,跟270. Closest Binary Search Tree Value不同的是,这要求找出树中k个最接近目标数的节点。 关于求k个最接近的数,很自然地想到用优先级队列。根据题意应该要用最大堆的优先级队列,比较函数比较的是节点值与目标值差的绝对值。

hgq522的博客 410

Leetcode 272 二叉搜索树中最接近的值 II

给定一棵非空二叉搜索树以及一个target值,找到 BST 中最接近给定值的k个数。 样例 样例 1: 输入: {1} 0.000000 1 输出: [1] 解释: 二叉树 {1},表示如下的树结构: 1 样例 2: 输入: {3,1,4,#,2} 0.275000 2 输出: [1,2] 解释: 二叉树 {3,1,4,#,2},表示如下的树结构: 3 / \ 1 ...

小珂同学的博客 1206

LeetCode 272. 最接近的二叉搜索树值 II(栈+优先队列)

文章目录1. 题目2. 解题 1. 题目 给定一个不为空的二叉搜索树和一个目标值 target,请在该二叉搜索树中找到最接近目标值 target 的 k 个值。 注意: 给定的目标值 target 是一个浮点数 你可以默认 k 值永远是有效的,即 k ≤ 总结点数 题目保证该二叉搜索树中只会存在一种 k 个值集合最接近目标值 示例: 输入: root = [4,2,5,1,3],目标值 = 3.714286,且 k = 2 4 / \ 2 5 / \ 1 3 输出: [4,3

Michael是个半路程序员 3498

Leetcode 272. Closest Binary Search Tree Value II (Hard) (cpp)

Leetcode 272. Closest Binary Search Tree Value II (Hard) (cpp)

还是需要多学习!闷声大发财,这是坠吼的! 826

LeetCode 272 Closest Binary Tree Traversal II 解题思路

原题网址:https://leetcode.com/problems... Given a non-empty binary search tree and a target value, findkvalues in the BST that are closest to the target. Note: Given target...

weixin_33968104的博客 374

[哈希表]leetcode272:存在重复元素(easy)

题目: 代码如下: class Solution { public: bool containsDuplicate(vector<int>& nums) { /*解题思路1:先对数组进行排序,然后比较相邻元素是否相等*/ if(nums.size()<2) return false; sort(nums.begin(...

algsup 573

LeetCode 272 Closest Binary Search Tree Value II

。。。

李歇特冯-兹拜因巴哈的博客 277

941. 有效的山脉数组(JS)——leetCode

题目描述: 给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。 让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组: A.length >= 3 在 0 < i < A.length - 1 条件下,存在 i 使得: A[0] < A[1] < … A[i-1] < A[i] A[i] > A[i+1] >...

zhang1339435196的博客 499

LeetCode272. 二叉搜索树中最接近的值II(Hard)

给定一棵非空二叉搜索树以及一个target值,找到 BST 中最接近给定值的 k 个数。 说明: 给出的target值为浮点数 你可以假设 k 总是合理的,即 k ≤ 总节点数 我们可以保证给出的 BST 中只有唯一一个最接近给定值的 k 个值的集合 提示: 元素按照递增的顺序被访问(比如中序遍历) 挑战: 假设是一棵平衡二叉搜索树,你可以用时间复杂度低于O(n)的算法解决问题吗( n 为节点个数)? 例1: 输入: {3,1,4,#,2} 0.275000 2 输出: ...

It’s All Uphill From Here 941

[LeetCode] 272. Closest Binary Search Tree Value II 最近的二叉搜索树的值 II

Given a non-empty binary search tree and a target value, findkvalues in the BST that are closest to the target. Note: Given target value is a floating point. You may assumekis always valid, t...

weixin_30553837的博客 423

[Leetcode] 272. Closest Binary Search Tree Value II

这一题,可以非完全的转换成为:给你一个排好序的数组,在里面找距离target最近的k个数。之所以可以这样转换,是因为对于一个bst来说,inorder可以给你一个排好序的数组 那给你一个排好序的数组,怎么求距离target最近的k个数呢?其实有两种办法。 1. 顺序遍历右移,保持一个size为k的window(因为距离target最近的k个数肯定是连续的)。找到一个临界点,这个临界点的定义...

chaochen1407的专栏 655

LeetCode刷题实战272:最接近的二叉搜索树值 II

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...

程序IT圈 444

[leetcode] 272. Closest Binary Search Tree Value II 解题报告

题目链接:https://leetcode.com/problems/closest-binary-search-tree-value-ii/ Given a non-empty binary search tree and a target value, find k values in the BST that are closest to the target. Note:

小榕流光的专栏 4214

[leetcode]272. Closest Binary Search Tree Value II二叉搜索树中最近的值II

Given a non-empty binary search tree and a target value, findkvalues in the BST that are closest to the target. Note: Given target value is a floating point. You may assumekis always valid, t...

weixin_30415113的博客 256
上一篇: LeetCode #270 - Closest Binary Search Tree Value
下一篇: LeetCode #273 - Integer to English Words
LawFile
博客等级 码龄10年 5粉丝 627原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值