文章

67

粉丝

207

获赞

29

访问

36.7k

头像
哈夫曼树 题解:新手简单易懂

#include <iostream>
using namespace std;
int min(int a[],int n){
	int nn=0;
	long long int minn=999999999;
for(int i=0;i<n;i++){
	if(a[i]==-1)
		continue;
	else if(a[i]<minn)
		minn=a[i];
}
//cout << minn <<endl;
return minn;
}
int mini(int a[],int n){
	int nn=0,minii=0;
	long long int minn=999999999;
for(int i=0;i<n;i++){
	if(a[i]==-1)
		continue;
	else if(a[i]<minn){
		minn=a[i];
		minii=i;
	}
}
//cout << minn <<endl;
return minii;
}
int main(){
	int a[1005],b[1005],n=0,count=0,index=0;
	while(cin >> n){
		for(int i=0;i<1005;i++)
		a[i]=-1;
	    for(int i=0;i<n;i++)
		cin >> a[i];
		//排序=================================================
		for(int i=0;i<n;i++){
			for(int j=n-2;j>=i;j--){
				if(a[j+1]<a[j]){
					index=a[j+1];
					a[j+1]=a[j];
					a[j]=index;
				}
		}
		}
		int c=0,d=0,cc=0;
		long long int sum=0;
for(int i=0;i<n-1;i++){
		
	c=min(a,n);//找出最...
登录查看完整内容


登录后发布评论

1 条评论
孙某人
2024年3月15日 16:58

二刷发现易错点:那个min一定要足够大 一定用long long   不要被已知条件迷惑,被那个节点值最大为100,因为不断循环中可能有节点更大

赞(0)