输出三角形的最大周长

在这里插入图片描述

本人自己的方法:

#include <iostream>
using namespace std;

int main()
{
	//读取边的长度 及各边长 
	int n,a[100];
	cin>>n;
	int i=0;
	cin>>a[i];i++;
	while(cin.get()!='\n'){
		cin>>a[i];i++;
	}
	//冒泡排序 数组从小到大
	int temp;
	for(int i=0;i<n-1;i++){
		for(int j=i+1;j<n;j++){
			if(a[i]>a[j]){
				temp=a[i];
				a[i]=a[j];
				a[j]=a[i];
			}
		}
	}
	//寻找最大周长
	for(int i=n-1;i>1;i--){
		if(a[i-1]+a[i-2]>a[i]){
			cout<<a[i-1]+a[i-2]+a[i];
			break;
		}else{
		}
		if(i==2){
			cout<<"0";
			break;
		}
	} 
 } 

书上的方法复杂度为O(n^3) 我就不展示了 我的是O(n^2)所以不展示
注释提示有复杂度为O(nlogn)的方法 :

猜你喜欢

转载自blog.csdn.net/weixin_43036613/article/details/82833274
今日推荐