代码编织梦想

「力扣挑战赛」开幕式开始了,空中绽放了一颗二叉树形的巨型焰火。
给定一棵二叉树 root 代表焰火,节点值表示巨型焰火这一位置的颜色种类。请帮小扣计算巨型焰火有多少种不同的颜色。

示例 1:

输入:root = [1,3,2,1,null,2]

输出:3

解释:焰火中有 3 个不同的颜色,值分别为 1、2、3

示例 2:

输入:root = [3,3,3]

输出:1

解释:焰火中仅出现 1 个颜色,值为 3

提示:

1 <= 节点个数 <= 1000
1 <= Node.val <= 1000

遍历一遍树,把颜色加到set里即可:

/**
 * 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:
    int numColor(TreeNode* root) {
        unordered_set<int> unSet;
        search(root, unSet);
        return unSet.size();
    }

private:
    void search(TreeNode *node, unordered_set<int> &unSet) {
        if (!node) {
            return;
        }
        
        unSet.insert(node->val);

        search(node->left, unSet);
        search(node->right, unSet);
    }
};

如果树的节点数量为n,此算法时间复杂度O(n),空间复杂度O(n),主要是栈空间开销,如果用循环,遍历树也需要栈来做辅助,空间开销也是O(n)。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tus00000/article/details/128841684

LeetCode LCP 44.开幕式焰火-爱代码爱编程

题目: 给定一颗二叉树,节点值表示巨型火焰这一位置的的颜色种类。请计算巨型焰火有多少种不同的颜色。 思路: 有多少种不同颜色就是计算这个二叉树中有多少个节点值不相同,此时我想到了Set集合。因为Set无法存储重复的元素,每次插入元素进行判断,插入成功,答案+1。 代码: /** * Definition for a binary tree node

《LeetCode零基础指南》(第十讲) 简单递归-爱代码爱编程

文章目录 前言1. 阶乘后的零2. 将数字变成0的操作次数3.完全二叉树的节点个数4. LCP 44.开幕式焰火5. 整数替换6. 二叉搜索数的范围和7. 剑指Offer 55 - I.二叉树的深度8. 二叉树的最大深度9. 翻转二叉树 前言 一入递归深似海,做完题顺带还复习了树的相关知识,一举双得。 最后两题没什么时间做了,下次有时间在做吧

【解题报告】《LeetCode零基础指南》(第十讲) 简单递归 - Java-爱代码爱编程

目录 一、172. 阶乘后的零1.题目2.分析3.代码二、1342. 将数字变成 0 的操作次数1.题目2.分析3.代码三、222. 完全二叉树的节点个数1.题目2.分析3.代码四、LCP 44. 开幕式焰火1.题目2.分析3.代码五、397. 整数替换1.题目2.分析3.代码 一、172. 阶乘后的零 1.题目 172. 阶乘后的零

【解题报告】《LeetCode零基础指南》(第九讲) 简单递归-爱代码爱编程

☘前言☘ 今天是九日集训第八天,我会记录一下学习内容和题解,争当课代表0.0. 链接:《LeetCode零基础指南》(第九讲) 简单递归 🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人 ✨联系方式:2201891280(QQ) ⏳全文大约阅读时间: 20min 全文目录 ☘前言☘🎁主要知识点梳理📝1.递归含义🍿2.递归调用阶乘

《LeetCode零基础指南》(第九讲) 简单递归-爱代码爱编程

文章目录 172. 阶乘后的零1342. 将数字变成 0 的操作次数222. 完全二叉树的节点个数LCP 44. 开幕式焰火 172. 阶乘后的零 class Solution { public: int trailingZeroes(int n) { if(n==0) return 0; int su

LCP 44. 开幕式焰火-爱代码爱编程

地址: 力扣https://leetcode-cn.com/problems/sZ59z6/ 题目: 「力扣挑战赛」开幕式开始了,空中绽放了一颗二叉树形的巨型焰火。 给定一棵二叉树 root 代表焰火,节点值表示巨型焰火这一位置的颜色种类。请帮小扣计算巨型焰火有多少种不同的颜色。 示例 1: 输入:root = [1,3,2,1,null,2]

LCP 44. 开幕式焰火 (Python 实现)-爱代码爱编程

题目: 「力扣挑战赛」开幕式开始了,空中绽放了一颗二叉树形的巨型焰火。 给定一棵二叉树 root 代表焰火,节点值表示巨型焰火这一位置的颜色种类。请帮小扣计算巨型焰火有多少种不同的颜色。 示例 1: 输入:root = [1,3,2,1,null,2] 输出:3 解释:焰火中有 3 个不同的颜色,值分别为 1、2、3 示例 2:

Leetcode LCP 44. 开幕式焰火-爱代码爱编程

文章目录 题目链接代码法一利用uthash法二哈希表 题目链接 LCP 44. 开幕式焰火 代码 法一利用uthash /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left;

【二叉树-简单】LCP 44. 开幕式焰火-爱代码爱编程

题目 代码 执行用时:52 ms, 在所有 Python3 提交中击败了43.11% 的用户 内存消耗:15.4 MB, 在所有 Python3 提交中击败了43.99% 的用户 通过测试用例:64 / 64 class Solution: def visit(self,root): if not root:return

[leetcode解题报告] lcp 48. 无限棋局_七水shuliang的博客-爱代码爱编程

[LeetCode解题报告] LCP 48. 无限棋局 一、 题目1. 题目描述2. 原题链接 二、 解题报告1. 思路分析2. 复杂度分析3. 代码实现 三、 本题小结 一、 题目 1.

【leetcode每日一题】——lcp 44.开幕式焰火_ironmanjay的博客-爱代码爱编程

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 广度优先搜索 二【题目难度】 简单

五月训练 day17_void bfs(treenode *root)//返回的是一个int的vector { queue-爱代码爱编程

文章目录 0. Leetcode [LCP 44. 开幕式焰火](https://leetcode.cn/problems/sZ59z6/)分析与解答 1. Leetcode [102. 二叉树的层序遍