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

看国外网站如何做科普必应搜索引擎地址

看国外网站如何做科普,必应搜索引擎地址,东莞做网站那家好,网站设计工资怎么样文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 在日常开发中,我们经常需要在一组有序的数据中快速找到最接近某个目标值的元素。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/wzjs/417385.html

相关文章:

  • 做外卖网站需要多少钱杭州百度竞价推广公司
  • 重庆展示型网站制作长沙百度网站推广
  • iis 搭建网站服务之家网站推广
  • 网站收录做关键词排名seo推广效果怎么样
  • apache php mysql wordpress四川seo平台
  • 四川时宇建设工程有限公司官方网站自己想做个网站怎么做
  • 网站建设哪家质量好网站开发详细流程
  • 目前有做电子合同的网站吗关键词有哪些关联词
  • 地图截选做分析图的网站有没有帮忙推广的平台
  • 做个公众号需要多少钱seo的优化步骤
  • 网站建设制作seo优化托管
  • 深圳网站建设jm3q网络广告营销的特点
  • 钓鱼网站制作步骤移动惠生活app下载网址
  • m域名网站安全吗墨子学院seo
  • 新建网站如何做关键词免费个人网站空间
  • 济南网站制作苏州百度推广开户
  • 织梦安防网站源码个人网站免费制作平台
  • 成都网站建设公司是什么网络平台
  • google 垃圾网站seo免费自学的网站
  • 网站开发 开源成都seo的方法
  • 网站建设背景图片2023半夜免费b站推广
  • 网站建设项目的运行与测试报告链接推广平台
  • 外网怎样访问自己做的网站建站优化推广
  • 苏州互联网公司排行榜网站seo排名免费咨询
  • vue做前台网站长沙网动网络科技有限公司
  • 手机上做网站的软件潍坊网站建设咨询
  • 建设银行单位社会招聘网站百度建一个网站多少钱
  • 工业设计网站哪个最网站源码交易平台
  • 网站关键词如何做竞价天津最新消息今天
  • 不建议网站南昌seo教程