ベスト・タイム📈 楽な


この問題は、毎日の価格のリストを与えられた最高の利益を見つけることを求めます.私たちは整数の配列を備えていて、配列の時間の間、可能な限り最高の買物組合せを見つけなければなりません.
このアルゴリズムの主なテクニックは、組み合わせの利益を比較し、最高のものを維持するMath.maxメソッドを使用することです.
const maxProfit = (prices) => {

    if (prices.length === 0){
        return 0
    }
    let current = 0
    let max = 0
    for(let i = 0; i<prices.length; i++){

        for(let j = i+1; j<prices.length; j++){
        // O(n^2) nested loop
        // inner loop on i+1 to always compare to next elements
            if(prices[j] - prices[i] > 0){
                current = prices[j] - prices[i]
            }
        max = Math.max(current, max) 
        // compare profits save higher
        }
    }
    return max
};
我々は、将来の日の価格を現在の価格に比較できるように、i+1で始まる入れ子になったループを使用します.
また、我々は利益current(利益があるので、違いが正であるときだけ)とmaxMath.maxの方法で、2つの最高を保つために2つの変数を使用します.
お気軽に手を差し伸べる!