当前位置: 首页 > news >正文

中国住房和城乡建设部查询网站6做公益网站有什么要求

中国住房和城乡建设部查询网站6,做公益网站有什么要求,游戏策划是做什么的,微信小程序登录流程文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 在日常开发中,我们经常需要在一组有序的数据中快速找到最接近某个目标值的元素。LeetCode 第 270 题“Closest Binary Search Tree Value”正是这样一个问题。本文将深入解析该…

在这里插入图片描述
在这里插入图片描述

文章目录

    • 摘要
    • 描述
    • 题解答案
    • 题解代码分析
    • 示例测试及结果
    • 时间复杂度
    • 空间复杂度
    • 总结

摘要

在日常开发中,我们经常需要在一组有序的数据中快速找到最接近某个目标值的元素。LeetCode 第 270 题“Closest Binary Search Tree Value”正是这样一个问题。本文将深入解析该题,提供 Swift 语言的解题方案,并通过详细的代码分析和实际示例,帮助您掌握在二叉搜索树中高效查找最接近目标值的技巧。

描述

给定一个非空的二叉搜索树(BST)和一个目标值 target,找到 BST 中最接近 target 的值。如果有多个值同样接近 target,返回较小的那个。

示例:

输入:

root = [4,2,5,1,3], target = 3.714286

输出:

4

提示:

  • 目标值是一个浮点数。

  • 保证 BST 中只有一个最接近目标值的节点。

题解答案

我们可以利用二叉搜索树的特性,从根节点开始,根据目标值与当前节点值的大小关系,决定向左子树还是右子树搜索,同时记录当前最接近目标值的节点。

class Solution {func closestValue(_ root: TreeNode?, _ target: Double) -> Int {var closest = root!.valvar current = rootwhile let node = current {if abs(Double(node.val) - target) < abs(Double(closest) - target) {closest = node.val}if target < Double(node.val) {current = node.left} else {current = node.right}}return closest}
}

题解代码分析

这段代码的核心思想是利用 BST 的性质进行二分搜索:

  1. 初始化:将 closest 初始化为根节点的值,current 指向根节点。

  2. 遍历:在遍历 BST 的过程中,比较当前节点的值与目标值的差距,如果更接近目标值,则更新 closest

  3. 方向选择:根据目标值与当前节点值的大小关系,决定向左子树还是右子树继续搜索。

这种方法的优势在于,它不需要遍历整个树,而是根据 BST 的特性,有选择地遍历部分节点,从而提高效率。

示例测试及结果

我们可以通过以下示例来测试上述代码的正确性:

// 构建示例 BST
let root = TreeNode(4)
root.left = TreeNode(2)
root.right = TreeNode(5)
root.left?.left = TreeNode(1)
root.left?.right = TreeNode(3)// 创建 Solution 实例
let solution = Solution()// 测试
let result = solution.closestValue(root, 3.714286)
print("最接近的值是:\(result)") // 输出:4

在这个示例中,BST 的结构如下:

    4/ \2   5/ \
1   3

目标值为 3.714286,最接近的节点值是 4。

时间复杂度

  • 最坏情况:O(n),当 BST 退化为链表时,需要遍历所有节点。

  • 平均情况:O(log n),在平衡 BST 中,每次比较后可以排除一半的节点。

空间复杂度

  • O(1),只使用了常数级别的额外空间。

总结

通过利用二叉搜索树的特性,我们可以高效地找到最接近目标值的节点。这种方法在处理有序数据结构时非常有用,特别是在需要快速查找接近某个值的元素时。在实际开发中,例如在推荐系统中查找最接近用户兴趣的内容,或在地图应用中查找最近的地点,都可以应用类似的思想。

http://www.dtcms.com/a/535570.html

相关文章:

  • 简单网站设计模板搜狗推广找谁
  • 英文网站注册装饰公司做网站怎么收费
  • 用wordpress搭建网站现在北京能不能去
  • 建设银行u盾用网站打不开重庆做个网站多少钱
  • HTML网站制作设计制作网页焦点图
  • 网站建设实例建设一个网站最低消费
  • 网站建设服务8票付通app下载
  • ipad做网站服务器专业的网站建设报价
  • 视频网站的建设费用做教育网站还挣钱吗
  • 企业建站用什么系统学校做网站难吗
  • 阿里云国际站官网网站下拉菜单html做多大
  • 网站超市系统 源码做外贸网站可以收付款吗
  • 中国最有名的建设网站可以做微课PPT模板 网站
  • 商企在线营销型网站网站建设的成本
  • 网站外包建设网站制作书籍推荐
  • 北京城乡建设厅网站dell公司网站设计特色
  • 云盘可以做网站吗国内ui设计网站
  • 建设部勘察设计网站手机网站模板素材下载
  • 苏州做网站的公司哪家最好深圳市宝安建设工程交易中心
  • 建设网站经验直播营销策划方案
  • 建设网站的功能定位是什么原因保定seo
  • asp个人网站源码网站建设服务天软科技
  • 广告制作流程步骤广州网站优化步骤
  • 物流网站怎么做的邢台网站建设最新报价
  • 网站名称推荐ai室内设计生成软件
  • 开封北京网站建设app营销
  • 国外做问卷调查的网站5118数据分析平台
  • 影视网站开发工程师管理系统软件开发
  • 湖北地矿建设勘察公司网站艺术字体转换器在线转换器
  • 上林县建设局网站汕尾网站seo