26, 27 配列から{重複, 指定された要素}を取り除いたあとの要素数
両方とも Easy だけど、よくわからなかったので解説を読んだ。両方とも2つの変数を使って、先を行く変数と、後ろからついていく変数が指す配列中の値をつかって、条件に合う要素数を 数える。
- https://github.com/inohiro/LeetCode/blob/master/26_remove_duplicates_from_sorted_array/self.rb
- https://github.com/inohiro/LeetCode/blob/master/27_remove_element/solution.rb
26 は配列から、重複している数を取り覗いたあとの要素数を返すプログラムなので、Ruby で書くと nums.uniq.length
でできてしまう。また、27 は配列から、指定された数字を取り除いたあとの要素数を数えるプログラムなので、nums.remove(val); nums.length
でできてしまう。
プロコン(競プロ)だと上記のように解けばよいけど、コーディング面接だと配列の扱いとか、解法を思いつけるかというところが評価されるのでめんどくさいなと思う... 「そもそも実務ではこんなコード書かないだろう」とか本当に毎回思うけど、仕方ないのでこういう感情は抑えて解くしかない。