题解 | #牛牛的二叉树问题#
牛牛的二叉树问题
https://www.nowcoder.com/practice/1b80046da95841a9b648b10f1106b04e
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */ #include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @param target double浮点型 * @param m int整型 * @return int整型vector */ vector<int> v; void dfs(TreeNode* root) { if(!root) return; v.emplace_back(root->val); dfs(root->left); dfs(root->right); } vector<int> findClosestElements(TreeNode* root, double target, int m) { // write code here // 根据节点值与target的距离大小作为key, 节点值作为value; vector<pair<double,int>> v_p; dfs(root); for(int i=0; i<v.size(); ++i) v_p.emplace_back(make_pair(abs(target-(double)v[i]), v[i])); sort(v_p.begin(), v_p.end(), [](pair<double,int> p_1, pair<double,int> p_2){return p_1.first < p_2.first;}); vector<int> ans; for(int j=0; j<m && j<v_p.size(); ++j) ans.emplace_back(v_p[j].second); sort(ans.begin(), ans.end()); return ans; } };
虚数五行区解题中心 文章被收录于专栏
非淡泊无以明志,非宁静无以致远