题目地址:
https://www.acwing.com/problem/content/744/
输入一个整数 N N N和一个长度为 N N N的整数数组 X X X。请你找到数组中最小的元素,并输出它的值和下标。注意,如果有多个最小值,则返回下标最小的那个。
输入格式:
第一行包含整数
N
N
N。第二行包含
N
N
N个用空格隔开的整数
X
[
i
]
X[i]
X[i]。
输出格式:
第一行输出Minimum value: x
,其中
x
x
x为数组元素最小值。第二行输出Position: y
,其中
y
y
y为最小值元素的下标(下标从
0
0
0开始计数)。
数据范围:
1
<
N
≤
1000
1<N≤1000
1<N≤1000
−
1000
≤
X
[
i
]
≤
1000
−1000≤X[i]≤1000
−1000≤X[i]≤1000
代码如下:
#include <iostream>
using namespace std;
const int N = 1010;
int n;
int idx, mi = 0x3f3f3f3f;
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) {
int x;
scanf("%d", &x);
if (x < mi) mi = x, idx = i;
}
printf("Minimum value: %d\nPosition: %d\n", mi, idx);
return 0;
}
时间复杂度 O ( N ) O(N) O(N),空间 O ( 1 ) O(1) O(1)。