1 条题解
-
0
是我!我来更新题解辣!
(清嗓) 来,这道题主包没有只用一个循环做的想法。所以,除了主包又建了一个除了题目要求输入的a数组的b数组。
int n,a[1005],b[1005];
(因为题目中并没有明确说明n的取值范围,所以姑且定为0<=n<=1000)
for(int i=1; i<=n; i++){ cin>>a[i]; b[i]=a[i]; }
其目的是把a数组里的所有元素值赋至b数组。(很恶心……)
然后:
sort(a+1,a+n+1);
是的,主包最爱的sort排序!(我循环就从1开始那咋了~)
介绍一下,sort排序函数是一种非常便利的升序排序函数(就比如sort(a+1,a+n+1)这个排序就是由a[1]到a[n]的n个元素进行从小到大的排序)
由于题目中让我们找到最小的元素(也就是我们现在进行sort排序后的a[1])的最后位置,那么我们可以直接从b[n]开始遍历(这就是主包建立b数组的原因)
如果找到了第i个值 b[i]=a[1],那么直接输出i,并终结程序(因为所有中,所有元素改变的都是位置而不是值,所以不存在找不到的情况)
接下来就是主包的AC代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,a[1005],b[1005]; cin>>n; for(int i=1; i<=n; i++) { cin>>a[i]; b[i]=a[i]; } sort(a+1,a+n+1); for(int i=n; i>=1; i--) { if(b[i]==a[1]) { cout<<i; return 0; } } return 0;
} 好的,再次重申,本题解仅供参考!!禁抄!!(抄了咬你)
信息
- ID
- 630
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 22
- 已通过
- 10
- 上传者