Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Solution {
- public int[][] Merge(int[][] intervals) {
- var store = new HashSet<int>[10001];
- var result = new List<int[]>();
- var currentStore = 1;
- foreach(var interval in intervals)
- {
- var left = interval[0];
- var right = interval[1];
- while (left <= right)
- {
- if (store[left] is null)
- store[left] = new HashSet<int>();
- store[left++].Add(currentStore);
- }
- currentStore++;
- }
- for (var i = 0; i < store.Length; ++i)
- {
- if (store[i] is null)
- continue;
- var currentSet = new HashSet<int>(store[i]);
- var innerResult = new int[2];
- innerResult[0] = i;
- while (i < store.Length && store[i] is not null && currentSet.Any(x => store[i].Contains(x)))
- {
- currentSet.UnionWith(store[i]);
- i++;
- }
- innerResult[1] = --i;
- result.Add(innerResult);
- }
- return result.ToArray();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment