FRTKL

136. Single Number (Easy)

Problem

https://leetcode.com/problems/single-number/

  • 空ではない整数の配列がある
  • その配列は1つの整数を除いて、すべての整数が2回現れる
  • 1しか現れない整数を見つける

Solution

Go

func singleNumber(nums []int) int {
	list := make(map[int]int)

	for _, v := range nums {
		if _, ok := list[v]; ok {
			list[v] += 1
		} else {
			list[v] = 1
		}
	}
    
	ret := 0
	for i := range list {
		if list[i] == 1 {
			ret = i
		}
	}
	return ret
}

PHP

class Solution {
    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function singleNumber($nums) {
        $list = [];
        
        foreach ($nums as $num) {
            $list[$num] += 1;
        }
        
        foreach ($list as $k => $v) {
            if ($v === 1) {
                return $k;
            }
        }        
    }
}

Impression

  • 初めてのLeetCodeを解いてみて結構楽しい。
  • 書かないとすぐ忘れるのでGoで書いていくぞ。
  • 解法がいくつか解説されていたが、アプローチ3,4の数学的アプローチとビット演算を使ったアプローチは全然思いつかなそうなので結構壁を感じる
  • 計算量の意識がまだできてないな
Written By Fukuaki TAKANO
fortkle icon

Engineering Manager at Connehito inc.
Please contact me via twitter. @fortkle