code cleanup for part2

This commit is contained in:
attila 2018-12-04 03:50:26 +01:00
parent d98b679967
commit 2eb8adf620

View File

@ -53,24 +53,20 @@ fn intersecting_area(rectangles: &Vec<Rectangle>) -> i32 {
return intersects.values().filter(|i| **i > 1).count() as i32; return intersects.values().filter(|i| **i > 1).count() as i32;
} }
fn not_intersecting_claim(rectangles: &Vec<Rectangle>) -> Result<i32, std::io::Error> fn not_intersecting_claim(rectangles: &[Rectangle]) -> Result<i32, &str>
{ {
for i in 0..rectangles.len() { 'outer:
let mut found = true; for rect1 in rectangles.iter() {
for rect2 in rectangles.iter() {
for j in 0..rectangles.len() { if rect1.id != rect2.id && rectangles_intersecting(&rect1, &rect2) {
if rectangles_intersecting(&rectangles[i], &rectangles[j]) && i != j { continue 'outer;
found = false; }
break;
} }
return Ok(rect1.id.clone());
} }
if found { Err("No not intersecting claim found")
return Ok(rectangles[i].id.clone());
}
}
return Err(std::io::Error::new(std::io::ErrorKind::Other, "No not intersecting claim found"))
} }
fn rectangles_intersecting(r1: &Rectangle, r2: &Rectangle) -> bool { fn rectangles_intersecting(r1: &Rectangle, r2: &Rectangle) -> bool {