Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "math"
- )
- func main() {
- fmt.Println(get_out_of_order_value([]int64{}))
- fmt.Println(get_out_of_order_value([]int64{6}))
- fmt.Println(get_out_of_order_value([]int64{3, 1, 2, 6, 9}))
- fmt.Println(get_out_of_order_value([]int64{233, 87, 4334, 88, 99424, 123}))
- fmt.Println(get_out_of_order_value([]int64{233, 87, 4, 88, 99424, 123}))
- }
- func get_out_of_order_value(arr []int64) int64 {
- if len(arr) < 2 { return -1 }
- min := int64(math.MaxInt64)
- for i := range arr {
- if arr[i] < min { min = arr[i] }
- }
- for i, val := range arr {
- nval := val - min
- for {
- if int64(i) == nval || nval > int64(len(arr)) - 1 { break }
- arr[i], arr[nval] = arr[nval], arr[i]
- nval = arr[i] - min
- }
- }
- for i := 0; i < len(arr) - 1; i++ {
- if int64(i) == arr[i] - min { continue }
- return arr[i - 1] + 1
- }
- return -1
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement