Skip to content

Commit c193162

Browse files
committed
Easy optimization
1 parent 8fc81fa commit c193162

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ Solutions for [Advent of Code](https://adventofcode.com/) in [Rust](https://www.
2323
| [Day 1](./src/bin/01.rs) | `52.5µs` | `49.9µs` |
2424
| [Day 2](./src/bin/02.rs) | `45.2µs` | `18.3ms` |
2525
| [Day 3](./src/bin/03.rs) | `49.7µs` | `80.0µs` |
26-
| [Day 4](./src/bin/04.rs) | `137.2µs` | `3.4ms` |
26+
| [Day 4](./src/bin/04.rs) | `130.5µs` | `1.7ms` |
2727

28-
**Total: 22.11ms**
28+
**Total: 20.41ms**
2929
<!--- benchmarking table --->
3030

3131
---

src/bin/04.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -136,12 +136,12 @@ fn count_adjacent_v2(grid: &Vec<Vec<u8>>, i: usize, j: usize) -> u8 {
136136
count
137137
}
138138

139-
fn get_offsets(i: usize, j: usize, rows: usize, cols: usize) -> Vec<(usize, usize)> {
139+
fn get_new_candidates(i: usize, j: usize, grid: &mut Vec<Vec<u8>>) -> Vec<(usize, usize)> {
140140
let mut offsets: Vec<(usize, usize)> = Vec::with_capacity(8);
141141

142-
for i2 in i.saturating_sub(1)..min(i + 2, rows) {
143-
for j2 in j.saturating_sub(1)..min(j + 2, cols) {
144-
if i2 == i && j2 == j {
142+
for i2 in i.saturating_sub(1)..min(i + 2, grid.len()) {
143+
for j2 in j.saturating_sub(1)..min(j + 2, grid[i2].len()) {
144+
if grid[i2][j2] != b'@' || i2 == i && j2 == j {
145145
continue;
146146
}
147147
offsets.push((i2, j2));
@@ -162,7 +162,7 @@ fn add_adjacent(
162162
if counted_adjacent < 4 {
163163
grid[i][j] = b'.';
164164
*count += 1;
165-
let offsets = get_offsets(i, j, grid.len(), grid[i].len());
165+
let offsets = get_new_candidates(i, j, grid);
166166
queue.push_all(offsets);
167167
}
168168
}

0 commit comments

Comments
 (0)