【LeetCode每日一题】——LCP 44.开幕式焰火
文章目录
- 一【题目类别】
- 二【题目难度】
- 三【题目编号】
- 四【题目描述】
- 五【题目示例】
- 六【解题思路】
- 七【题目提示】
- 八【时间频度】
- 九【代码实现】
- 十【提交结果】
一【题目类别】
- 广度优先搜索
二【题目难度】
- 简单
三【题目编号】
- 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 是焰火种类的数目
九【代码实现】
- 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;}}
- 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;
}/*主函数省略*/
十【提交结果】
Java语言版
C语言版
【LeetCode每日一题】——LCP 44.开幕式焰火相关推荐
- LeetCode Algorithm LCP 44. 开幕式焰火
LCP 44. 开幕式焰火 Ideas 树类型的题目一般都需要用到递归,这道题相对来说比较简单,我们只需要遍历整棵树,然后把节点值记录到一个集合中,最后返回集合的长度就可以了. 所以这道题的考点就是树 ...
- LCP 44. 开幕式焰火
「力扣挑战赛」开幕式开始了,空中绽放了一颗二叉树形的巨型焰火. 给定一棵二叉树 root 代表焰火,节点值表示巨型焰火这一位置的颜色种类.请帮小扣计算巨型焰火有多少种不同的颜色. 示例 1: 输入:r ...
- leetcode每日刷题计划-简单篇day8
leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...
- Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)
思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...
- 【LeetCode每日一题】1723. 完成所有工作的最短时间
[LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...
- leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用
leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...
- LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色
LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...
- 【LeetCode每日一题】——109.有序链表转换二叉搜索树
文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...
- leetcode每日一题·救生艇问题(Python)
leetcode每日一题·救生艇问题(Python) 问题描述 题目入口 题目思路 首先分析问题,一个船最多坐两人,因此我们可以把这个问题看作两两组合的问题,并且如果最重的那个人和最轻的人加起来大于l ...
- LeetCode每日一题——904. 水果成篮
LeetCode每日一题系列 题目:904. 水果成篮 难度:普通 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 你正在探访一家农场,农场从左到右种植了一排果树.这些树用一个整 ...
最新文章
- Swift之Vision 图像识别框架
- angular-cli更新(link方式安装)
- PPC系统常见启动项(StartUp)解说
- .Net Core in Docker极简入门(上篇)
- SQL SERVER作业的Schedules浅析
- HTML比较常用的标签
- [转]jQuery-1.3.2学习笔记
- 基于Springboot+MySQL的个人健康监控管理系统
- 大学《数据库系统》课程设计报告
- [原创]:善用佳软(一)
- VS2019打包生成安装文件教程(详细实操版)
- c加加语言订餐系统代码,【加加餐饮管理系统--前台营业子系统|餐饮点菜收银软件】免费申请试用_选软件网...
- MP2315高频同步整流降压x芯片电路原理图
- 抢先入驻皮皮虾APP社区 红利初期第一批操作者绝对有肉吃
- 核电工程能源行业案例 | 达索系统百世慧®
- 手动档科目三考试过程
- LeetCode题解目录
- python写android的App(kivy框架)的实践(1)
- 云脉人脸识别门禁 拒绝“伪装”蒙混过关
- 俞敏洪励志演讲:摆脱恐惧