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
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"gotest/missing"
|
||||||
|
)
|
||||||
|
|
||||||
func main() {
|
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
|
package rotation
|
||||||
|
|
||||||
func Rotation(A []int, K int) []int {
|
func Rotation(A []int, K int) []int {
|
||||||
|
|
|
@ -1,10 +1,18 @@
|
||||||
|
// Чудные вхождения в массив
|
||||||
package unique
|
package unique
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
func FindUnique(A []int) int {
|
func FindUnique(A []int) int {
|
||||||
var result int
|
var result int
|
||||||
|
|
||||||
for i := 0; i < len(A); i++ {
|
if len(A)%2 != 0 {
|
||||||
result = result ^ A[i]
|
for i := 0; i < len(A); i++ {
|
||||||
|
//xor use
|
||||||
|
result = result ^ A[i]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
fmt.Println("the number of elements is even")
|
||||||
}
|
}
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
Loading…
Reference in New Issue