File tree Expand file tree Collapse file tree 1 file changed +7
-4
lines changed
Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -30,7 +30,9 @@ unsafe fn part1_inner(s: &str) -> u64 {
3030 let mut sum = 0 ;
3131
3232 let mut i = 0 ;
33- let mut v = Vec :: new ( ) ;
33+ let mut v = [ 0 ; 15 ] ;
34+ let mut v_len = 0 ;
35+
3436 while i < s. len ( ) {
3537 let mut target: u64 = 0 ;
3638 while * s. get_unchecked ( i) != b':' {
@@ -46,7 +48,8 @@ unsafe fn part1_inner(s: &str) -> u64 {
4648 num += ( * s. get_unchecked ( i) - b'0' ) as u64 ;
4749 i += 1 ;
4850 if !s. get_unchecked ( i) . is_ascii_digit ( ) {
49- v. push ( num) ;
51+ * v. get_unchecked_mut ( v_len) = num;
52+ v_len += 1 ;
5053 num = 0 ;
5154 i += 1 ;
5255 if * s. get_unchecked ( i - 1 ) == b'\n' {
@@ -55,10 +58,10 @@ unsafe fn part1_inner(s: &str) -> u64 {
5558 }
5659 }
5760
58- if search ( target, & v) {
61+ if search ( target, & v[ ..v_len ] ) {
5962 sum += target;
6063 }
61- v . clear ( ) ;
64+ v_len = 0 ;
6265 }
6366
6467 sum
You can’t perform that action at this time.
0 commit comments