我托盤構建功能以顯示最高和最低數字,但在 0 到 20 之間
"use strict";
let scors = [50, 70, 60, 20, 15, 14, 12, 10, 9, 8, -5, 4, 16, 2, 17.5, 12.75];
function minMax(score) {
let max = score[0];
let min = score[0];
for (let i = 0; i < score.length; i ) {
if (score[i] < min && score[i] >= 0) {
min = score[i];
}
//this part dose not work
if (score[i] > max && score[i] <= 20) {
max = score[i];
}
}
console.log(max);
console.log(min);
}
minMax(scors);
uj5u.com熱心網友回復:
這些是您應用的條件,當前分數必須大于max和小于20。
if (score[i] > max && score[i] <= 20) {
max = score[i];
}
這是第 4 次第一次迭代的示例。
- 迭代 1:
input: 50>max: 50 - 迭代 2:
input: 70>max: 50 - 迭代 3:
input: 60>max = 50 - 迭代 4:
input: 20>max = 50
在第 4 次迭代中,
max沒有分配為,20因為它不大于當前最大值50。
這是簡單的解決方案:
- 添加
score.sort();用于在開始回圈之前對陣列進行排序。 min用陣列的最后一個索引定義。
'use strict';
let scors = [50, 70, 60, 20, 15, 14, 12, 10, 9, 8, -5, 4, 16, 2, 17.5, 12.75];
function minMax(score) {
score.sort();
let max = score[0];
let min = score[score.length - 1];
for (let i = 0; i < score.length; i ) {
if (score[i] < min && score[i] >= 0) {
min = score[i];
}
// This part now works!
if (score[i] > max && score[i] <= 20) {
max = score[i];
}
}
console.log(max);
console.log(min);
}
minMax(scors);
uj5u.com熱心網友回復:
對于 0 - 20 的范圍,您可以限制最小值和最大值,這將消除對陣列進行排序的需要。
時間復雜度 O(N)。
'use strict';
let scors = [50, 70, 60, 20, 15, 14, 12, 10, 9, 8, -5, 4, 16, 2, 17.5, 12.75];
function minMax(score) {
let max = -1;
let min = 21;
for (let i = 0; i < score.length; i ) {
if (score[i] < min && score[i] >= 0) {
min = score[i];
}
// This part now works!
if (score[i] > max && score[i] <= 20) {
max = score[i];
}
}
console.log(max);
console.log(min);
}
minMax(scors);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/423070.html
標籤:
