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

Leetcode 501:二叉搜索树中的众数

给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。

如果树中有不止一个众数,可以按 任意顺序 返回。

假定 BST 满足如下定义:

  • 结点左子树中所含节点的值 小于等于 当前节点的值
  • 结点右子树中所含节点的值 大于等于 当前节点的值
  • 左子树和右子树都是二叉搜索树
public static int[] findMode(TreeNode root) {int[] result;    //记录结果List<Integer> list=new ArrayList<>();Map<Integer,Integer> map=new HashMap();inorder(root,map);// 1. 获取 entrySet 并转换为 ListList<Map.Entry<Integer, Integer>> mapList = new ArrayList<>(map.entrySet());// 2. 对 List 进行排序(从到到小)mapList.sort((c1, c2) -> c2.getValue().compareTo(c1.getValue()));//3. 将频率最高的加入list中list.add(mapList.get(0).getKey());for(int i=1;i<mapList.size();i++){if(mapList.get(i-1).getValue()==mapList.get(i).getValue()){list.add(mapList.get(i).getKey());}else {break;}}//将list转化为数组result=list.stream().mapToInt(Integer::intValue).toArray();return result;}public static void inorder(TreeNode root,Map<Integer,Integer> map){if(root==null) return;inorder(root.left,map);map.put(root.val,map.getOrDefault(root.val,0)+1);inorder(root.right,map);}

http://www.lryc.cn/news/386028.html

相关文章:

  • esp8266 GPIO
  • ingress相关yaml文件报错且相关资源一切正常解决方法
  • 重要通知:据最新TEMU要求所有欧区车灯都需要能效标签(eu energy lable)
  • JAVA SDK 整合 AI 大语言模型
  • 【Apache Doris】如何实现高并发点查?(原理+实践全析)
  • 解决SpringMVC使用MyBatis-Plus自定义MyBaits拦截器不生效的问题
  • Swagger与RESTful API
  • MySQL84 -- ERROR 1524 (HY000): Plugin ‘msql_native_password‘ is not loaded.
  • 将Excel中的错误值#N/A替换成心仪的字符串,瞬间爱了……
  • AI大模型日报#0628:谷歌开源9B 27B版Gemma2、AI首次实时生成视频、讯飞星火4.0发布
  • 【随笔】提高代码学习水平(以更高的视角看事物)
  • 游戏AI的创造思路-技术基础-深度学习(5)
  • 基于SpringBoot养老院管理系统设计和实现(源码+LW+调试文档+讲解等)
  • 餐饮点餐的简单MySQL集合
  • STM32驱动-ads1112
  • 数据结构与算法高频面试题
  • uni-app的showModal提示框,进行删除的二次确认,可自定义确定或取消操作
  • 5款提高工作效率的免费工具推荐
  • 区块链的技术架构:节点、网络和数据结构
  • pdfmake不能设置表格边框颜色?
  • laravel 使用RabbitMQ作为消息中间件
  • web项目打包成可以离线跑的exe软件
  • BFS:队列+树的宽搜
  • MySQL高级-SQL优化- count 优化 - 尽量使用count(*)
  • python Flask methods
  • three.js场景三元素
  • Spring AOP(面向切面编程)详解
  • Kafka第一篇——内部组件概念架构启动服务器zookeeper选举以及底层原理
  • 14、顺时针打印矩阵
  • 毅速丨金属3D打印是制造业转型升级的重要技术