C# - One Pass O(N) solution
csharp\npublic int[][] Insert(int[][] intervals, int[] newInterval) \n{\n\tif(intervals.Length == 0)\n\t{\n\t\treturn new int[][] { newInterval };\n\t}        \
```csharp\npublic int[][] Insert(int[][] intervals, int[] newInterval) \n{\n\tif(intervals.Length == 0)\n\t{\n\t\treturn new int[][] { newInterval };\n\t}        \n\n\tList<int[]> result = new List<int[]>();\n\tforeach(var interval in intervals)\n\t{\n\t\tif(newInterval[0] > interval[1])\n\t\t{\n\t\t\tresult.Add(interval);\n\t\t}\n\n\t\telse if(newInterval[1] < interval[0])\n\t\t{\n\t\t\tresult.Add(newInterval);\n\t\t\tnewInterval = interval;\n\t\t}\n\n\t\telse\n\t\t{\n\t\t\tnewInterval[0] = Math.Min(interval[0], newInterval[0]);\n\t\t\tnewInterval[1] = Math.Max(interval[1], newInterval[1]);\n\t\t}\n\t}\n\n\tresult.Add(newInterval);\n\treturn result.ToArray();\n}\n```
[]