• 501. 二叉搜索树中的众数


     

    1. /**
    2. * Definition for a binary tree node.
    3. * struct TreeNode {
    4. * int val;
    5. * TreeNode *left;
    6. * TreeNode *right;
    7. * TreeNode() : val(0), left(nullptr), right(nullptr) {}
    8. * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    9. * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
    10. * };
    11. */
    12. class Solution {
    13. public:
    14. vector<int>a;
    15. map<int,int>mp;
    16. void order(TreeNode *t){
    17. if(t==NULL){
    18. return;
    19. }else{
    20. order(t->left);
    21. mp[t->val]++;
    22. order(t->right);
    23. }
    24. }
    25. set<int>st;
    26. vector<int> findMode(TreeNode* root) {
    27. order(root);
    28. int k=0;
    29. for(auto t:mp){
    30. if(t.second>=k){
    31. k=t.second;
    32. }
    33. }
    34. for(auto t:mp){
    35. if(t.second==k){
    36. a.push_back(t.first);
    37. }
    38. }
    39. return a;
    40. }
    41. };
    1. class Solution {
    2. private:
    3. void searchBST(TreeNode* cur, unordered_map<int, int>& map) { // 前序遍历
    4. if (cur == NULL) return ;
    5. map[cur->val]++; // 统计元素频率
    6. searchBST(cur->left, map);
    7. searchBST(cur->right, map);
    8. return ;
    9. }
    10. bool static cmp (const pair<int, int>& a, const pair<int, int>& b) {
    11. return a.second > b.second;
    12. }
    13. public:
    14. vector<int> findMode(TreeNode* root) {
    15. unordered_map<int, int> map; // key:元素,value:出现频率
    16. vector<int> result;
    17. if (root == NULL) return result;
    18. searchBST(root, map);
    19. vectorint, int>> vec(map.begin(), map.end());
    20. sort(vec.begin(), vec.end(), cmp); // 给频率排个序
    21. result.push_back(vec[0].first);
    22. for (int i = 1; i < vec.size(); i++) {
    23. // 取最高的放到result数组中
    24. if (vec[i].second == vec[0].second) result.push_back(vec[i].first);
    25. else break;
    26. }
    27. return result;
    28. }
    29. };

     

  • 相关阅读:
    【前端升全栈】 开发项目之数据存储(MySQL数据库)
    JAVA核酸预约检测管理系统毕业设计 开题报告
    JavaScript学习_01——JavaScript简介
    Linux中FTP安装
    计算几何+2sat:1020T3
    Kafka安装与使用
    【debian】常用指令
    Linux中常见的问题
    -骑士巡游-
    JavaScript 19 JavaScript 字符串方法
  • 原文地址:https://blog.csdn.net/aaronyyds/article/details/132781303