如何在不使用函数和数组的情况下打印第二大数字
How to print the 2nd biggest number without using function and arrays
let biggestNo;
for (let i = 1; i <= 10000; i++) {
const a = prompt("enter a number");
if (!a) {
break;
} else {
biggestNo = Math.max(a);
}
}
console.log(biggestNo);
如何在不使用函数和数组的情况下使用这种方法打印第二大数字
这是一个时间复杂度为 O(n)
的解决方案:
const array = [31, 25, 43, 19, 8, 42];
let main = -Infinity, sub = -Infinity;
for (let num of array) {
if(num > main) {
sub = main;
main = num;
} else if(num > sub) {
sub = num;
}
}
console.log('biggest: ' + main);
console.log('second biggest: ' + sub);
使用用户输入:
let main = -Infinity, sub = -Infinity;
const total = 5;
for(let i = 1; i <= total; i++) {
const num = +prompt(`Enter a number(${i} of ${total}):`)
if(num > main) {
sub = main;
main = num;
} else if(num > sub) {
sub = num;
}
}
console.log('biggest: ' + main);
console.log('second biggest: ' + sub);
您可以使用正则表达式来匹配所有收集到的数字吗?
let numbersString;
for (let i = 1; i <= 1000; i++) {
const a = prompt("enter a number");
if (!a) {
break;
} else {
numbersString += "-" + a
}
}
const numbers = numbersString.match(/\d+/g)
const secondLargest = numbers[numbers.length - 2]
console.log(secondLargest);
let biggestNo;
for (let i = 1; i <= 10000; i++) {
const a = prompt("enter a number");
if (!a) {
break;
} else {
biggestNo = Math.max(a);
}
}
console.log(biggestNo);
如何在不使用函数和数组的情况下使用这种方法打印第二大数字
这是一个时间复杂度为 O(n)
的解决方案:
const array = [31, 25, 43, 19, 8, 42];
let main = -Infinity, sub = -Infinity;
for (let num of array) {
if(num > main) {
sub = main;
main = num;
} else if(num > sub) {
sub = num;
}
}
console.log('biggest: ' + main);
console.log('second biggest: ' + sub);
使用用户输入:
let main = -Infinity, sub = -Infinity;
const total = 5;
for(let i = 1; i <= total; i++) {
const num = +prompt(`Enter a number(${i} of ${total}):`)
if(num > main) {
sub = main;
main = num;
} else if(num > sub) {
sub = num;
}
}
console.log('biggest: ' + main);
console.log('second biggest: ' + sub);
您可以使用正则表达式来匹配所有收集到的数字吗?
let numbersString;
for (let i = 1; i <= 1000; i++) {
const a = prompt("enter a number");
if (!a) {
break;
} else {
numbersString += "-" + a
}
}
const numbers = numbersString.match(/\d+/g)
const secondLargest = numbers[numbers.length - 2]
console.log(secondLargest);