From 5374dd7375d3e2acaffc00907920f42bf5d8dc23 Mon Sep 17 00:00:00 2001 From: Ilya Smyshlyaev Date: Tue, 20 Sep 2022 01:56:29 +0300 Subject: [PATCH] add missing number finder and some other changes --- .DS_Store | Bin 6148 -> 8196 bytes main.go | 7 +++++++ missing/missing.go | 24 ++++++++++++++++++++++++ missing/missing_test.go | 1 + rotation/rotation.go | 1 + unique/findunique.go | 12 ++++++++++-- 6 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 missing/missing.go create mode 100644 missing/missing_test.go diff --git a/.DS_Store b/.DS_Store index 118ac0472abe514d2ade1563a9225627e2403296..bff0db87707986bbf1e3f9762454f78a3e0a213a 100644 GIT binary patch delta 372 zcmZoMXmOBWU|?W$DortDU;r^WfEYvza8E20o2aKKDgu%R@);PC7)lw^8RCI-=4L?- zF_z5=9KFno**Q2SHn5n3lyL(k;~7#IQjwK1`tYFl^>w zImB4c1~fOHL60F9NT#4FXZ#6Nt_M>NWU~WRB{F0( k65K$-6%=;B@cGU>nP0?nvOf<82Qc_R!OE~Xo@Wj-0FLilDF6Tf delta 132 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{Mvv5r;6q~50D9R6#2a6>!lrmH?RC(s)CvPlV z&dkU^`Jtf5<}iVEjGHG2J!G6%60w+_gF}!Rr~wEBxPgQ#$e@jd- N0kV~0b3D%+W&krE7qS2V diff --git a/main.go b/main.go index 7905807..2712b7b 100644 --- a/main.go +++ b/main.go @@ -1,5 +1,12 @@ package main +import ( + "fmt" + "gotest/missing" +) + func main() { + fmt.Print(missing.FindNumber([]int{1, 3, 5, 2, 6, 7, -9, 8, 4})) + } diff --git a/missing/missing.go b/missing/missing.go new file mode 100644 index 0000000..31611b3 --- /dev/null +++ b/missing/missing.go @@ -0,0 +1,24 @@ +package missing + +import "fmt" + +func FindNumber(A []int) int { + + var elements_sum int + + for i := 0; i < len(A); i++ { + + if A[i] < 0 || A[i] > 100000 { + fmt.Print("array has negative element or longer than expected") + return A[i] + } else { + elements_sum = elements_sum + A[i] + } + + } + + nums_sum := (len(A) + 1) * (len(A) + 2) / 2 + + return nums_sum - elements_sum + +} diff --git a/missing/missing_test.go b/missing/missing_test.go new file mode 100644 index 0000000..4142715 --- /dev/null +++ b/missing/missing_test.go @@ -0,0 +1 @@ +package missing_test diff --git a/rotation/rotation.go b/rotation/rotation.go index d10fcc1..c275f08 100644 --- a/rotation/rotation.go +++ b/rotation/rotation.go @@ -1,3 +1,4 @@ +// Циклическая ротация package rotation func Rotation(A []int, K int) []int { diff --git a/unique/findunique.go b/unique/findunique.go index 045935d..218b4f4 100644 --- a/unique/findunique.go +++ b/unique/findunique.go @@ -1,10 +1,18 @@ +// Чудные вхождения в массив package unique +import "fmt" + func FindUnique(A []int) int { var result int - for i := 0; i < len(A); i++ { - result = result ^ A[i] + if len(A)%2 != 0 { + for i := 0; i < len(A); i++ { + //xor use + result = result ^ A[i] + } + } else { + fmt.Println("the number of elements is even") } return result