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
    }
    
}