122, 136 and 141
122. Best Time to Buy and Sell Stock II
- https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/
- https://github.com/inohiro/LeetCode/blob/master/122_best_time_to_buy_and_sell_stock_2/self.rb
最初問題の意味がよくわからなかった。121では一度ずつの「買う」と「売る」しか許されてなくて、その制約の下で最大の利益(安く買って高く売る)を求める。122 では売って買ってを何度もできる(売るときは、買ったものがないといけない。また、もう買っているなら、売らないと買えない)。
とりあえず利益が出たらすぐ売るというアイデアで考えてみたら、いくつかの例ではうまく行きそうだったので、実装したら通った。26分くらい
136. Single number
- https://leetcode.com/problems/single-number/
- https://github.com/inohiro/LeetCode/blob/master/136_single_number/self.rb
数値の配列が与えられて、その中でひとつだけダブらないものを見つける。こういうのは HashMap だな、ということですぐ解けた。8分。
141. Linked List Cycle
- https://leetcode.com/problems/linked-list-cycle/
- https://github.com/inohiro/LeetCode/blob/master/141_linked_list_cycle/src/main/java/Solution.java
Rubyで解かせてくれなかったので、Javaで解いた。最初は ListNode#val の値だけ HashMap に入れようとしたが、結局オブジェクトごと入れた。そんなに難しくなかったけど時間がかかった。