LCP 44. 开幕式焰火-辅助数组法
「力扣挑战赛」开幕式开始了,空中绽放了一颗二叉树形的巨型焰火。
给定一棵二叉树 root 代表焰火,节点值表示巨型焰火这一位置的颜色种类。请帮小扣计算巨型焰火有多少种不同的颜色。
示例 1:
输入:root = [1,3,2,1,null,2]
输出:3
解释:焰火中有 3 个不同的颜色,值分别为 1、2、3
示例 2:
输入:root = [3,3,3]
输出:1
解释:焰火中仅出现 1 个颜色,值为 3
这题本应十个比较难的题目,但是因为,这个题目的数据集原因,我们可以采用比较简单的方法去解决
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
void search(struct TreeNode* root,int *a){
if(root){
a[root->val]=1;
search(root->left,a);
search(root->right,a);
}
}
int numColor(struct TreeNode* root){
int *a=(int *)malloc(sizeof(int)*1001);
for(int i=0;i<1001;i++){
a[i]=0;
}
int re=0;
search(root,a);
for(int i=0;i<1001;i++){
if(a[i]!=0){
re++;}
}
return re;
}