day01-2 tuple
This commit is contained in:
@@ -13,21 +13,18 @@ pub fn task1() {
|
||||
pub fn task2() {
|
||||
let contents = utils::read_file("input/day01.txt");
|
||||
|
||||
let mut seen: HashSet<i32> = HashSet::new();
|
||||
seen.insert(0);
|
||||
let start_state = (std::cell::RefCell::new(seen), std::cell::RefCell::new(0));
|
||||
let seen: HashSet<i32> = vec![0].into_iter().collect();
|
||||
let start_state = (seen, 0);
|
||||
let final_state = contents
|
||||
.lines()
|
||||
.map(|line| line.parse::<i32>().unwrap())
|
||||
.cycle()
|
||||
.scan(&start_state, |(hash_set, current_freq), freq_change| {
|
||||
*current_freq.borrow_mut() += freq_change;
|
||||
if hash_set.borrow_mut().contains(¤t_freq.borrow()) {
|
||||
Some((current_freq.borrow(), true))
|
||||
.scan(start_state, |state, freq_change| {
|
||||
state.1 += freq_change;
|
||||
if state.0.insert(state.1) {
|
||||
Some((state.1, false))
|
||||
} else {
|
||||
let value: i32 = *current_freq.borrow_mut();
|
||||
hash_set.borrow_mut().insert(value);
|
||||
Some((current_freq.borrow(), false))
|
||||
Some((state.1, true))
|
||||
}
|
||||
}).find(|state| state.1);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user