先上力扣刷简单题
没有建树,都是递归查找之类的
平衡二叉树
A 题
仔细看这个题跟树关系不大, 就看最后一层就行,相当于一个区间,搜这个区间就完了,当时还没想明白,这么简单
#include<bits/stdc++.h>
using namespace std;
int a[5000];
int dfs(int l,int r)
{
int sum=0;
for(int i=l;i<=r;i++) sum+=a[i];
if(sum<2) return 1;
else return dfs(l,(r+l)/2)+dfs((r+l)/2+1,r)+1;
}
int main()
{
int n,k;
cin>>n>>k;
while(k--)
{
int v;
cin>>v;
a[v]++;
}
cout<<dfs(1,n)<<endl;
return 0;
}