Skip to content

Commit ea184e1

Browse files
committed
Use own vec impl
1 parent 168940b commit ea184e1

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/day7.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)