DAY - 11


質問する



最初のコミット

function solution(participant, completion) {
    
    for(let i=0; i<participant.length;i++){
        for(let j=0; j<completion.length;j++){
            if(participant[i]==completion[j]){
                participant[i]=0;
                completion[j]=0;
            }
        }
    }
    
    const answer = participant.filter(index => index !== 0).join();
    return answer;
}
最初、私の答えは値を1つずつ比較し、一致する値は両側を0に変え、重複を避け、すべての配列を迂回したときに0をフィルタして値を導出します.方法は無知に設計されており,精度は高いが効率的ではない.したがって、コードをさらに簡略化したり、配列を完全に迂回したりする必要がない方法を見つけなければなりません.

2回目のコミット



1回目の提出ではあまりにも無知な方法を用いたので,2回目はできるだけ簡潔に積極的に方法を用い,回転配列の比重を減らそうとした.しかし、この方法では、一列回るだけで終わりましたが、重複は見つかりませんでした.

3回目の提出



以前の提出のため、少なくとも1つの列を回って繰り返しをつかむ方法が見つかった.文字列で構成され、ソート方法を使用して各配列に同じ名前の位置を作成し、比較します.一致しない場合は、参加者配列の値を答えに割り当てます.

に感銘を与える


for文を書くのがあまりにも漫然としているような気がしますが、やはり使い方が上手ではないような気がします.回転配列mapメソッドを使用して、for文の乱用を低減し、より簡潔でより速いコードを生成する必要があります.
最初の提出で簡単に通過できると思って油断した私にとって、効率の問題は非常に深刻になりました.精度は無知な構造で行うことができるので,効率部分で解決する.