add missing number finder and some other changes
This commit is contained in:
parent
376ff4255a
commit
5374dd7375
7
main.go
7
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}))
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
package missing_test
|
|
@ -1,3 +1,4 @@
|
|||
// Циклическая ротация
|
||||
package rotation
|
||||
|
||||
func Rotation(A []int, K int) []int {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue