diff --git a/aoc2020/src/day14.rs b/aoc2020/src/day14.rs index aaed831..9922034 100644 --- a/aoc2020/src/day14.rs +++ b/aoc2020/src/day14.rs @@ -286,7 +286,7 @@ impl Program { } fn memory_sum(&self) -> u64 { - self.memory.iter().map(|(_, value)| value).sum() + self.memory.values().sum() } } diff --git a/aoc2020/src/day16.rs b/aoc2020/src/day16.rs index da0f583..66103ec 100644 --- a/aoc2020/src/day16.rs +++ b/aoc2020/src/day16.rs @@ -44,7 +44,6 @@ fn assign_field_positions( .iter() .map(|(&name, field)| { let possibilities = (0..num_values) - .into_iter() .filter(|i| tickets.iter().all(|t| t.valid_field(field, *i))) .collect(); diff --git a/aoc2020/src/day20.rs b/aoc2020/src/day20.rs index 5961c59..a671f0e 100644 --- a/aoc2020/src/day20.rs +++ b/aoc2020/src/day20.rs @@ -307,8 +307,7 @@ impl Image { image_positions.insert((0, 0), tiles[0].clone()); // compute each image position depending on its neighbours - while !todo.is_empty() { - let pos = todo.pop().unwrap(); + while let Some(pos) = todo.pop() { let tile = &image_positions[&pos]; for (direction, other_tile) in tile.neighbours(tiles) { @@ -339,9 +338,9 @@ impl Image { const IMAGE_TILE_HEIGHT: usize = TILE_HEIGHT - 2; const IMAGE_TILE_WIDTH: usize = TILE_WIDTH - 2; - let height = *image_positions.iter().map(|((i, _), _)| i).max().unwrap() as usize + 1; + let height = *image_positions.iter().map(|((i, _), _)| i).max().unwrap() + 1; let height = height * IMAGE_TILE_HEIGHT; - let width = *image_positions.iter().map(|((_, j), _)| j).max().unwrap() as usize + 1; + let width = *image_positions.iter().map(|((_, j), _)| j).max().unwrap() + 1; let width = width * IMAGE_TILE_HEIGHT; let mut pixels = Vec::new(); @@ -352,8 +351,8 @@ impl Image { } for (pos, tile) in image_positions { - let begin_i = IMAGE_TILE_HEIGHT * pos.0 as usize; - let begin_j = IMAGE_TILE_WIDTH * pos.1 as usize; + let begin_i = IMAGE_TILE_HEIGHT * pos.0; + let begin_j = IMAGE_TILE_WIDTH * pos.1; for i in 0..IMAGE_TILE_HEIGHT { for j in 0..IMAGE_TILE_WIDTH { diff --git a/aoc2020/src/day24.rs b/aoc2020/src/day24.rs index ab6cb28..ede3eb1 100644 --- a/aoc2020/src/day24.rs +++ b/aoc2020/src/day24.rs @@ -86,9 +86,7 @@ fn part2(input: &str) -> Result { let mut seen = HashSet::new(); let mut todo: Vec = black_tiles.iter().copied().collect(); - while !todo.is_empty() { - let tile = todo.pop().unwrap(); - + while let Some(tile) = todo.pop() { if seen.contains(&tile) { continue; } else {