File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -48,17 +48,17 @@ def merge_intervals(intervals: list[list[int]]) -> list[list[int]]:
4848 raise ValueError (msg )
4949
5050 # Sort intervals based on the start time
51- intervals .sort (key = lambda interval : interval [0 ])
51+ # Sort a copy so the caller's list (and its inner lists) are never mutated
52+ sorted_intervals = sorted (intervals , key = lambda interval : interval [0 ])
5253
53- merged : list [list [int ]] = [intervals [ 0 ]]
54+ merged : list [list [int ]] = [sorted_intervals [ 0 ][: ]]
5455
55- for current in intervals [1 :]:
56+ for current in sorted_intervals [1 :]:
5657 last = merged [- 1 ]
5758
5859 # If current interval overlaps with the last merged interval
5960 if current [0 ] <= last [1 ]:
6061 last [1 ] = max (last [1 ], current [1 ])
6162 else :
62- merged .append (current )
63-
63+ merged .append (current [:])
6464 return merged
You can’t perform that action at this time.
0 commit comments