文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【解题思路】
  • 七【题目提示】
  • 八【时间频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 广度优先搜索

二【题目难度】

  • 简单

三【题目编号】

  • LCP 44.开幕式焰火

四【题目描述】

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

五【题目示例】

  • 示例 1:

    • 输入:root = [1,3,2,1,null,2]
    • 输出:3
    • 解释:焰火中有 3 个不同的颜色,值分别为 1、2、3
  • 示例 2:

    • 输入:root = [3,3,3]
    • 输出:1
    • 解释:焰火中仅出现 1 个颜色,值为 3

六【解题思路】

  • 这个题目没有难度。利用BFS+Hash的思想
  • 首先我们需要遍历整棵树,使用BFS遍历
  • 然后在遍历的过程中将对应颜色位置+1
  • 最后统计出现的颜色种类个数(Hash表中元素值不为1的个数)
  • 最终返回结果即可

七【题目提示】

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

八【时间频度】

  • 时间复杂度:O(n)O(n)O(n),其中 nnn 是二叉树的节点个数
  • 空间复杂度:O(m)O(m)O(m),其中 mmm 是焰火种类的数目

九【代码实现】

  1. Java语言版
package BFS;import java.util.LinkedList;
import java.util.Queue;public class l44_OpeningCeremonyFireworks {int val;l44_OpeningCeremonyFireworks left;l44_OpeningCeremonyFireworks right;public l44_OpeningCeremonyFireworks(int val) {this.val = val;}public static void main(String[] args) {l44_OpeningCeremonyFireworks root = new l44_OpeningCeremonyFireworks(1);l44_OpeningCeremonyFireworks left = new l44_OpeningCeremonyFireworks(3);l44_OpeningCeremonyFireworks right = new l44_OpeningCeremonyFireworks(2);l44_OpeningCeremonyFireworks left1 = new l44_OpeningCeremonyFireworks(1);l44_OpeningCeremonyFireworks right1 = new l44_OpeningCeremonyFireworks(2);root.left = left;root.right = right;left.left = left1;right.left = right1;int res = numColor(root);System.out.println("res = " + res);}public static int numColor(l44_OpeningCeremonyFireworks root) {int[] hash = new int[1001];Queue<l44_OpeningCeremonyFireworks> queue = new LinkedList<>();queue.offer(root);while (queue.size() != 0) {l44_OpeningCeremonyFireworks node = queue.poll();hash[node.val]++;if (node.left != null) {queue.offer(node.left);}if (node.right != null) {queue.offer(node.right);}}int res = 0;for (int i = 0; i < 1001; i++) {if (hash[i] != 0) {res++;}}return res;}}
  1. C语言版
#include<stdio.h>
#include<stdlib.h>struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;
};int numColor(struct TreeNode* root)
{int* hash = (int*)calloc(1001, sizeof(int));struct TreeNode** queue = (struct TreeNode**)malloc(sizeof(struct TreeNode*) * 1001);int rear = 0;int front = 0;queue[rear++] = root;while (front != rear){struct TreeNode* node = queue[front++];hash[node->val]++;if (node->left != NULL){queue[rear++] = node->left;}if (node->right != NULL){queue[rear++] = node->right;}}int res = 0;for (int i = 0; i < 1001; i++){if (hash[i] != 0){res++;}}return res;
}/*主函数省略*/

十【提交结果】

  1. Java语言版

  2. C语言版

【LeetCode每日一题】——LCP 44.开幕式焰火相关推荐

  1. LeetCode Algorithm LCP 44. 开幕式焰火

    LCP 44. 开幕式焰火 Ideas 树类型的题目一般都需要用到递归,这道题相对来说比较简单,我们只需要遍历整棵树,然后把节点值记录到一个集合中,最后返回集合的长度就可以了. 所以这道题的考点就是树 ...

  2. LCP 44. 开幕式焰火

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

  3. leetcode每日刷题计划-简单篇day8

    leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...

  4. Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)

    思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...

  5. 【LeetCode每日一题】1723. 完成所有工作的最短时间

    [LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...

  6. leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用

    leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...

  7. LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色

    LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...

  8. 【LeetCode每日一题】——109.有序链表转换二叉搜索树

    文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...

  9. leetcode每日一题·救生艇问题(Python)

    leetcode每日一题·救生艇问题(Python) 问题描述 题目入口 题目思路 首先分析问题,一个船最多坐两人,因此我们可以把这个问题看作两两组合的问题,并且如果最重的那个人和最轻的人加起来大于l ...

  10. LeetCode每日一题——904. 水果成篮

    LeetCode每日一题系列 题目:904. 水果成篮 难度:普通 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 你正在探访一家农场,农场从左到右种植了一排果树.这些树用一个整 ...

最新文章

  1. Swift之Vision 图像识别框架
  2. angular-cli更新(link方式安装)
  3. PPC系统常见启动项(StartUp)解说
  4. .Net Core in Docker极简入门(上篇)
  5. SQL SERVER作业的Schedules浅析
  6. HTML比较常用的标签
  7. [转]jQuery-1.3.2学习笔记
  8. 基于Springboot+MySQL的个人健康监控管理系统
  9. 大学《数据库系统》课程设计报告
  10. [原创]:善用佳软(一)
  11. VS2019打包生成安装文件教程(详细实操版)
  12. c加加语言订餐系统代码,【加加餐饮管理系统--前台营业子系统|餐饮点菜收银软件】免费申请试用_选软件网...
  13. MP2315高频同步整流降压x芯片电路原理图
  14. 抢先入驻皮皮虾APP社区 红利初期第一批操作者绝对有肉吃
  15. 核电工程能源行业案例 | 达索系统百世慧®
  16. 手动档科目三考试过程
  17. LeetCode题解目录
  18. python写android的App(kivy框架)的实践(1)
  19. 云脉人脸识别门禁 拒绝“伪装”蒙混过关
  20. 俞敏洪励志演讲:摆脱恐惧

热门文章

  1. 为什么看起来不是很复杂的网站,淘宝、腾讯却需要大量顶尖高手来开发?
  2. 机器学习之PCA算法的人脸图像识别-平均脸的计算(详细操作步骤)
  3. 大气污染治理行业有哪些特点?
  4. 深入理解5G SSB协议
  5. 图论1:哥尼斯堡七桥问题的证明
  6. win10添加新硬盘
  7. 2020年IT运维市场大前景到底怎么样
  8. 如何让OpenwrtX86和win7双系统共存在一块硬盘
  9. android项目图片分辨率转换工具
  10. windows pagefile.sys配置调整