/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
unordered_map<int, int>mp;
vector<pair<int, int>>ans;
void traverse(TreeNode* root)
{
if (root == NULL)
{
return;
}
mp[root->val]++;
traverse(root->left);
traverse(root->right);
}
bool static cmp(pair<int, int>a, pair<int, int>b)
{
return a.second > b.second;
}
vector<int> findMode(TreeNode* root)
{
if (root == NULL)
{
return {};
}
traverse(root);
vector<pair<int, int>>res(mp.begin(),mp.end());
sort(res.begin(),res.end(),cmp);
vector<int>ans;
ans.push_back(res[0].first);
for (int i = 1; i < res.size(); i++)
{
if (res[i].second == res[0].second)
{
ans.push_back(res[i].first);
}
else
break;
}
return ans;
}
};
作为菜鸡,我只能想到map暴力解法,可以通过,但是效率很低,orz
还是要好好学习,冲冲冲!!!明天又是元气满满的一天