cin >> W;
for (int Q = 0; Q < W; Q++)
cin >> PR[Q] >> CA[Q];
所以,我的阵列现在已经填满了,
(数字只是例子,无论我的意思是他们的尺寸)
1000 300
750 200
950 852
450 250
471 207
现在,为了更好地理解它,让我们说在右侧,这意味着在CA阵列中有一些数字,这意味着分钟,字面意思,在PR数组中这些数字是价格,现在我需要找到这对它在一分钟内得到了最小的价格,但是我想分开它,但它很慢,所以我找到了规则
如果ad < bc
,则a/b < c/d
但我无法在循环中使用它所有其他的东西都是我的意思定义等,我只是不能做这个“核心”它会是什么样子?
我还创建了2个循环,但无法正确实现
for (int H = 0; H < W; H++) {
for (int B = 0; B < W; B++) {
}
}
答案 0 :(得分:2)
您不需要两个循环来使用简单的线性搜索:
int best = 0;
for (int i = 1 ; i != W ; i++) {
if (pr[i]*ca[best] < pr[best]*ca[i]) {
best = i;
}
}
请注意,循环从索引1开始,而不是0,因为我们不需要将pr[0], ca[0]
对与自身进行比较。