13 条题解
-
0
Guest
-
1
法1
思路
整个不一样的:
max({a,b,c……})
和min({a,b,c……})
可以在一堆数里面找最大和最小。 中间的值可以用三个数之和减最小的和最大的。法2
sort
大法好。法3
我们知道
priority_queue<int,vector<int>,greater<int> >
会得到小根堆,每个头节点都是最小的元素,所以可以利用于此来排序。法4
冒泡排序。
code
#include<bits/stdc++.h> using namespace std; int a,b,c; void fa1(){//max、min cin>>a>>b>>c; cout<<min({a,b,c})<<" "<<(a+b+c-max({a,b,c})-min({a,b,c}))<<" "<<max({a,b,c}); } void fa2(){//sort int a[3]; cin>>a[0]>>a[1]>>a[2]; sort(a,a+3); cout<<a[0]<<" "<<a[1]<<" "<<a[2]; } void fa3(){//堆排序 cin>>a>>b>>c; priority_queue<int,vector<int>,greater<int> > pq; pq.push(a),pq.push(b),pq.push(c); while(pq.size()){ cout<<pq.top()<<" "; pq.pop(); } } void fa4(){//冒泡 cin>>a>>b>>c; if(a>b) swap(a,b); if(b>c) swap(b,c); if(a>c) swap(a,c); cout<<a<<" "<<b<<" "<<c; } int main(){ fa4(); }
-
-4
#include<bits/stdc++.h> using namespace std; int main() { int a,b,c; cin>>a>>b>>c; if(a>b) { if(b>c) { cout<<c<<" "<<b<<" "<<a; } else { cout<<b<<" "<<c<<" "<<a; } } else { if(c>b) { cout<<a<<" "<<b<<" "<<c; } else { if(c>a) { cout<<a<<" "<<c<<" "<<b; } else { cout<<c<<" "<<a<<" "<<b; } } } return 0; }
- 1
信息
- ID
- 25
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 240
- 已通过
- 116
- 上传者