LeetCodeに毎日挑戦してみた 136. Single Number(Python、Go)
Leetcodeとは
leetcode.com
ソフトウェア開発職のコーディング面接の練習といえばこれらしいです。
合計1500問以上のコーデイング問題が投稿されていて、実際の面接でも同じ問題が出されることは多いらしいとのことです。
golang入門+アルゴリズム脳の強化のためにgoとPythonで解いていこうと思います。(Pythonは弱弱だが経験あり)
31問目(問題125)
136. Single Number
問題内容
Given a non-empty array of integers
nums
, every element appears twice except for one. Find that single one.Follow up: Could you implement a solution with a linear runtime complexity and without using extra memory?
日本語訳
整数の空でない配列が与えられると、1つを除いて
nums
すべての要素が2回表示されます。その単一のものを見つけます。フォローアップ: 追加のメモリを使用せずに、実行時の複雑さが線形のソリューションを実装できますか?
Example 1:
Input: nums = [2,2,1]
Output: 1
Example 2:
Input: nums = [4,1,2,1,2]
Output: 4
Example 3:
Input: nums = [1]
Output: 1
考え方
- ビット演算を用います
- 論理的XORを使って重複するものがあったら0、無かったら1を返すようにします
- 最終的に一つしかない数字が返されます
解答コード
class Solution:
def singleNumber(self, nums: List[int]) -> int:
result = 0
for n in nums:
result ^= n
return result
- Goでも書いてみます!
func singleNumber(nums []int) int {
result := 0
for _, v := range nums {
result = result ^ v
}
return result
}
Author And Source
この問題について(LeetCodeに毎日挑戦してみた 136. Single Number(Python、Go)), 我々は、より多くの情報をここで見つけました https://qiita.com/ishishow/items/928536bcc98c2e3d90e5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .