JSの3つの数は最大値を取る(アルゴリズムの書き方を最適化する)
4469 ワード
従来の考え方:列挙によって三つの大きさをそれぞれ判断するだけで、ここで直接三元表現を書きます.
/**
* @param num1: An integer
* @param num2: An integer
* @param num3: An integer
* @return: an interger
*/
const maxOfThreeNumbers = function (num1, num2, num3) {
var max = (num1 > num2 ? num1 : num2) > num3 ? (num1 > num2 ? num1 : num2) : num3;
console.log(max);
}
新しい考え:3つの数字を入力して、彼らの最大値を取って、ここでまず3つの数字の平均値を計算して、num 1が平均値より大きいならnum 1を出力します.num 2が平均値より大きいならnum 2を出力します.num 3が平均値より大きいならnum 3を出力します.最後に3つの数字が等しいなら、num 1/num 2/num 3/num 3/num 3/num 3/num 3/num 3/numここで私が出力したのは平均です./**
* @param num1: An integer
* @param num2: An integer
* @param num3: An integer
* @return: an interger
*/
const maxOfThreeNumbers = function (num1, num2, num3) {
var average = (num1+num2+num3)/3
if(num1!=num2&&num2!=num3){
if(num1>average){
return num1
}
if(num2>average){
return num2
}
if(num3>average){
return num3
}
}
if(num1==num2&&num2==num3){
return average
}
}