From 2eb8adf62049cc92667a7cc4ee9f37b38353c3fc Mon Sep 17 00:00:00 2001 From: attila Date: Tue, 4 Dec 2018 03:50:26 +0100 Subject: [PATCH] code cleanup for part2 --- day3/src/main.rs | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/day3/src/main.rs b/day3/src/main.rs index 6785839..30c4b29 100644 --- a/day3/src/main.rs +++ b/day3/src/main.rs @@ -53,24 +53,20 @@ fn intersecting_area(rectangles: &Vec) -> i32 { return intersects.values().filter(|i| **i > 1).count() as i32; } -fn not_intersecting_claim(rectangles: &Vec) -> Result +fn not_intersecting_claim(rectangles: &[Rectangle]) -> Result { - for i in 0..rectangles.len() { - let mut found = true; - - for j in 0..rectangles.len() { - if rectangles_intersecting(&rectangles[i], &rectangles[j]) && i != j { - found = false; - break; + 'outer: + for rect1 in rectangles.iter() { + for rect2 in rectangles.iter() { + if rect1.id != rect2.id && rectangles_intersecting(&rect1, &rect2) { + continue 'outer; + } } + + return Ok(rect1.id.clone()); } - if found { - return Ok(rectangles[i].id.clone()); - } - } - - return Err(std::io::Error::new(std::io::ErrorKind::Other, "No not intersecting claim found")) + Err("No not intersecting claim found") } fn rectangles_intersecting(r1: &Rectangle, r2: &Rectangle) -> bool {