Leetcode 56. Merge Intervals—JavaScript
5577 ワード
1.問題の説明
2 D配列からなる
intervals
のオーバーラップ部分がマージされて返される問題.2.解答
まず区間をソートします.ソートの基準はstartです.すなわち、各要素の0番インデックスに基づいてソートされます.JavaScriptが提供するsortメソッドはASCII文字列に基づいてソートされるため、数値をソートするにはcompareオプションを使用して数値をソートする必要があります.
その後、最初期値(最初の区間)を加え、次の始点が自分より小さい場合は、もう一度終点を比較して候補区間をマージします.次の開始点が候補配列終了点より大きい場合は、新しいセグメントにプッシュして格納します.
3.正解コード
const merge = (intervals) => {
intervals.sort((a, b) => {
return a[0] - b[0]
})
const answer = [[...intervals[0]]];
for (let i=1; i < intervals.length; i++) {
const lastIdx = answer.length-1;
if (answer[lastIdx][1] >= intervals[i][0]) {
if (answer[lastIdx][1] < intervals[i][1]) {
answer[lastIdx][1] = intervals[i][1]
}
} else {
answer.push([...intervals[i]])
}
}
return answer;
};
Reference
この問題について(Leetcode 56. Merge Intervals—JavaScript), 我々は、より多くの情報をここで見つけました https://velog.io/@developyoun/Leetcode-56.-Merge-Intervals-자바스크립트テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol