Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
77715 刘焕群 两个数的最小距离II C++ Accepted 5 MS 280 KB 1103 2024-06-15 11:31:17

Tests(15/15):


Code:

#include <iostream> #include <vector> #include <climits> using namespace std; int main() { int n; cin >> n; vector<int> a(n); for (int i = 0; i < n; ++i) { cin >> a[i]; } int min_diff = INT_MAX; int min_i = 0, min_j = 0; for (int i = 0; i < n - 1; ++i) { for (int j = i + 1; j < n; ++j) { int diff = abs(a[j] - a[i]); if (diff < min_diff) { min_diff = diff; min_i = i + 1; // 注意下标从1开始 min_j = j + 1; } else if (diff == min_diff && i < min_i) { // 如果diff相同但i更小,更新min_i和min_j min_i = i + 1; min_j = j + 1; } else if (diff == min_diff && i == min_i && j < min_j) { // 如果diff和i都相同但j更小,只更新min_j min_j = j + 1; } } } cout << min_i << " " << min_j << endl; return 0; }