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

wordpress 赞赏seo关键词排名优

wordpress 赞赏,seo关键词排名优,简单的企业网站源码,部门网站建设自查报告题目来源 力扣2476二叉搜索树最近节点查询 题目概述 给你一个 二叉搜索树 的根节点 root ,和一个由正整数组成、长度为 n 的数组 queries 。 请你找出一个长度为 n 的 二维 答案数组 answer ,其中 answer[i] [mini, maxi] : mini 是树中…

题目来源

力扣2476二叉搜索树最近节点查询

题目概述

给你一个 二叉搜索树 的根节点 root ,和一个由正整数组成、长度为 n 的数组 queries 。

请你找出一个长度为 n 的 二维 答案数组 answer ,其中 answer[i] = [mini, maxi] :

mini 是树中小于等于 queries[i] 的 最大值 。如果不存在这样的值,则使用 -1 代替。 maxi 是树中大于等于 queries[i] 的 最小值 。如果不存在这样的值,则使用 -1 代替。 返回数组 answer 。

思路分析

题目并没有指出给我们的是平衡二叉树,所以极端情况下我们可能会拿到一条单链表,在单链表上做查询我们只能以顺序方式进行,效率较低,因此我们考虑将树转为列表然后在列表上做二分查找。

代码实现

java实现

public class Solution {public List<List<Integer>> closestNodes(TreeNode root, List<Integer> queries) {treeToList(root);List<List<Integer>> res = new ArrayList<>();// 二分查找for (Integer query : queries) {int min = -1;int max = -1;int start = 0;int end = list.size();int mid =  0;while (start < end) {mid = start + (end - start) / 2;if (list.get(mid) >= query) {end = mid;} else if (list.get(mid) < query) {start = mid + 1;}}if (start < list.size()) {max = list.get(start);if (query.equals(max)) {min = query;}}if (min == -1 && start > 0) {min = list.get(start - 1);}List<Integer> temp = new ArrayList<>();temp.add(min);temp.add(max);res.add(temp);}return res;}List<Integer> list = new ArrayList<>();/*** 中序遍历转树为列表* @param root*/private void treeToList(TreeNode root) {if (root == null) return;if (root.left != null) treeToList(root.left);list.add(root.val);if (root.right != null) treeToList(root.right);}
}

c++实现

class Solution {
public:/**** 树转列表 *****/vector<int> list;void tree_to_list(TreeNode* root) {if (root == nullptr) return;if (root->left != nullptr) tree_to_list(root->left);list.push_back(root->val);if (root->right != nullptr) tree_to_list(root->right);}vector<vector<int>> closestNodes(TreeNode* root, vector<int>& queries) {tree_to_list(root);vector<vector<int>> res;// 二分查找for (int query : queries) {int min = -1;int max = -1;int start = 0;int end = list.size();int mid = 0;while (start < end) {mid = start + (end - start) / 2;if (list[mid] >= query) {end = mid;}else if (list[mid] < query) {start = mid + 1;}}if (start < list.size()) {max = list[start];if (query == max) {min = query;}}if (min == -1 && start > 0) {min = list[start - 1];}vector<int> temp;temp.push_back(min);temp.push_back(max);res.push_back(temp);}return res;}
}

http://www.hkea.cn/news/653901/

相关文章:

  • 城市模拟建设游戏网站今天最新的新闻头条新闻
  • 手机网站自适应代码品牌网络营销策划方案
  • 个人网站建设在哪里百度资源搜索平台
  • 云空间免费空间北京网站优化校学费
  • 个人网站做导航网站项目推广平台有哪些
  • 威海住房建设局网站培训学校资质办理条件
  • 做趣味图形的网站免费线上培训平台
  • 女生做网站前端设计师成都网站seo
  • 濮阳建设银行官方网站搜索引擎优化的对比
  • 完全删除wordpressseo小白入门
  • 做网站常用到的css标签什么软件可以找客户资源
  • 有做销售产品的网站有哪些新闻头条今日新闻
  • 深圳自己做网站 服务器优化的近义词
  • 网站开发职业工资网站推广上首页
  • 宝安附近公司做网站建设多少钱深圳百度开户
  • 成都紧急通知seo网络营销招聘
  • 思坎普网站建设如何做营销推广
  • 太原网站优化公司有域名和服务器怎么建网站
  • 网站策划的前景seo 推广
  • wordpress导入网站文章怎么联系百度人工客服
  • 制冷机电工程东莞网站建设简阳seo排名优化培训
  • 北京网站建设 网站维护服装营销方式和手段
  • 唐山高端网站建设开发新客户的十大渠道
  • 小地方的旅游网站怎么建设seo教程有什么
  • 做网站教程宁波百度seo点击软件
  • asp.net个人网站北京专门做seo
  • 石家庄java开发做网站百度资源站长平台
  • 有哪些网站系统网络营销首先要进行
  • 网站建设硬件设置竞价广告是怎么推广的
  • 网站的平面设计图用ps做国外搜索引擎大全百鸣