Python、C++、JavaScript、SQL、TypeScript の多様な LeetCode ソリューションを探索してください。面接の準備、学習、複数のプログラミング言語でのコードの練習に最適です。 Github リポジトリ リンク
重複しない間隔の配列が与えられます。 間隔
どこ 間隔[i] = [開始i 、終了i ]
の始まりと終わりを表します 私は
間隔と 間隔
で昇順にソートされます 私を始めます
間隔も与えられます。 newInterval = [開始、終了]
これは、別の間隔の開始と終了を表します。
入れる 新しい間隔
の中へ 間隔
そのような 間隔
まだ昇順でソートされています 私を始めます
そして 間隔
重複する間隔はまだありません (必要に応じて、重複する間隔をマージします)。
戻る 間隔
挿入後.
注記 変更する必要がないこと 間隔
新しい配列を作成して返すことができます。
例 1:
入力: 間隔 = [[1,3],[6,9]]、新しい間隔 = [2,5] 出力: [[1,5],[6,9]]
例 2:
入力: 間隔 = [[1,2]、[3,5]、[6,7]、[8,10]、[12,16]]、新しい間隔 = [4,8] 出力: [[1,2],[3,10],[12,16]] 説明: 新しい間隔 [4,8] は [3,5]、[6,7]、[8,10] と重なっているためです。
制約:
0 <= 間隔.長さ <= 10 4
間隔[i].length == 2
0 <= 開始i <= 終了i <= 10 5
間隔
で並べ替えられています私を始めます
で 上昇 注文。newInterval.length == 2
0 <= 開始 <= 終了 <= 10 5
パイソン
# 時間計算量: O(n) # 空間計算量: import List クラスの入力による O(n) 解決策: def insert(self, Interval: List[List[int]], newInterval: List[int]) -> List[List [int]]: result = [] i = 0 while i < len(intervals) かつ newInterval[0] > Intervals[i][1]: result.append(intervals[i]) i += 1 while i < len (間隔) および newInterval[1] >= 間隔[i][0]: newInterval[0] = min(間隔[i][0], newInterval[0]) newInterval[1] = max(間隔[i][ 1], newInterval[1]) i += 1 result.append(newInterval) while i < len(intervals): result.append(intervals[i]) i += 1 結果の間隔 = [[1, 2], [3, 5], [6, 7], [8, 10], [12, 16]] newInterval = [4, 8] print(Solution().insert(intervals, newInterval))