From 101dbab1bcfa1e6b342f68d1bdcfbebf17722464 Mon Sep 17 00:00:00 2001 From: rihib Date: Sat, 21 Dec 2024 13:46:50 +0900 Subject: [PATCH] pullrequests/missing_number --- pullrequests/missing_number/step1.go | 18 ++++++++++++++++++ pullrequests/missing_number/step2.go | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 pullrequests/missing_number/step1.go create mode 100644 pullrequests/missing_number/step2.go diff --git a/pullrequests/missing_number/step1.go b/pullrequests/missing_number/step1.go new file mode 100644 index 0000000..67ecd4f --- /dev/null +++ b/pullrequests/missing_number/step1.go @@ -0,0 +1,18 @@ +//lint:file-ignore U1000 Ignore all unused code +package template + +/* +レビュワーの方へ: + - このコードは既にGoの標準のフォーマッタで整形済みです。演算子の周りにスペースがあったりなかったりしますが、これはGoのフォーマッタによるもので、優先順位の高い演算子の周りにはスペースが入らず、低い演算子の周りには入るようになっています。https://qiita.com/tchssk/items/77030b4271cd192d0347 +*/ + +/* +方針としては0~len(nums)の和と実際の和の差分を取ればいい。 +*/ +func missingNumberStep1(nums []int) int { + var difference int + for i, n := range nums { + difference += i + 1 - n + } + return difference +} diff --git a/pullrequests/missing_number/step2.go b/pullrequests/missing_number/step2.go new file mode 100644 index 0000000..1f46968 --- /dev/null +++ b/pullrequests/missing_number/step2.go @@ -0,0 +1,18 @@ +//lint:file-ignore U1000 Ignore all unused code +package template + +/* +レビュワーの方へ: + - このコードは既にGoの標準のフォーマッタで整形済みです。演算子の周りにスペースがあったりなかったりしますが、これはGoのフォーマッタによるもので、優先順位の高い演算子の周りにはスペースが入らず、低い演算子の周りには入るようになっています。https://qiita.com/tchssk/items/77030b4271cd192d0347 +*/ + +/* +0~len(nums)の和を求めるには算数的に求める方法も取れる。 +*/ +func missingNumberStep2(nums []int) int { + var total int + for _, n := range nums { + total += n + } + return (1+len(nums))*len(nums)/2 - total +}