File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -17,8 +17,8 @@ public object PartOne(string input) {
1717 public object PartTwo ( string input ) {
1818 // Sort ranges by start so that potentionally overlapping ranges come after
1919 // each other. Then walk the list and make them disjoint:
20- var ranges = Parse ( input ) . ranges . OrderBy ( x => x . start ) . ToList ( ) ;
21- for ( var i = 0 ; i < ranges . Count - 1 ; i ++ ) {
20+ var ranges = Parse ( input ) . ranges . OrderBy ( x => x . start ) . ToArray ( ) ;
21+ for ( var i = 0 ; i < ranges . Length - 1 ; i ++ ) {
2222 if ( ranges [ i + 1 ] . start <= ranges [ i ] . end ) {
2323 var end = Math . Max ( ranges [ i ] . end , ranges [ i + 1 ] . end ) ;
2424 ranges [ i ] = new Range ( ranges [ i ] . start , ranges [ i + 1 ] . start - 1 ) ;
@@ -28,13 +28,13 @@ public object PartTwo(string input) {
2828 return ranges . Sum ( range => range . end - range . start + 1 ) ;
2929 }
3030
31- ( List < Range > ranges , long [ ] nums ) Parse ( string input ) {
31+ ( Range [ ] ranges , long [ ] nums ) Parse ( string input ) {
3232 var blocks = input . Split ( "\n \n " ) ;
3333 var ranges = (
3434 from line in blocks [ 0 ] . Split ( "\n " )
3535 let limits = line . Split ( "-" ) . Select ( long . Parse ) . ToArray ( )
3636 select new Range ( limits [ 0 ] , limits [ 1 ] )
37- ) . ToList ( ) ;
37+ ) . ToArray ( ) ;
3838
3939 var nums = blocks [ 1 ] . Split ( "\n " ) . Select ( long . Parse ) . ToArray ( ) ;
4040 return ( ranges , nums ) ;
You can’t perform that action at this time.
0 commit comments