input=[1,17,0,10,18,11,6]spoken_numbers={}current_number=[]# n = 2020 # Part 1n=30000000n.timesdo|i|ifi<input.sizecurrent_number=input[i]elselast_number_spoken=current_numberifspoken_numbers[last_number_spoken]!=nillast_spoken=spoken_numbers[last_number_spoken].lastifspoken_numbers[last_number_spoken].size==1current_number=0elselast_spoken_before_that=spoken_numbers[last_number_spoken][-2]current_number=last_spoken-last_spoken_before_thatendendendspoken_numbers[current_number]||=[]spoken_numbers[current_number]<<iendpcurrent_number
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Ruby solution. Same thing for Part 1 and 2.