[fix] array-smallest-missing-number parameters

master
Furkan Türkal 6 years ago
parent 48b9c99e14
commit 2b9b3a8548
No known key found for this signature in database
GPG Key ID: 3015FE56155820F2

@ -8,29 +8,34 @@
package main package main
import "fmt" import "fmt"
import "os"
func findFirstMissing (arr []int, start, end int) int { func findFirstMissing(arr []int, start, end int) int {
if start < 0 {
if(start > end) { fmt.Println("Start must be greater than 0")
os.Exit(1)
return 0
}
if start > end {
return end + 1 return end + 1
} }
if(start != arr[start]) { if start != arr[start] {
return start return start
} }
mid := (start + end) / 2 mid := (start + end) / 2
if(arr[mid] == mid){ if arr[mid] == mid {
return findFirstMissing(arr, mid + 1, end) return findFirstMissing(arr, mid+1, end)
} }
return findFirstMissing(arr, start, end) return findFirstMissing(arr, start, end)
} }
func main() { func main() {
arr := []int{0, 1, 2, 3, 4, 5, 6, 7, 10} arr := []int{0, 1, 2, 3, 4, 5, 6, 7, 10}
var n int = len(arr) var n int = len(arr)
fmt.Printf("Smallest missing element is %d", findFirstMissing(arr, 0, n - 1)) fmt.Printf("Smallest missing element is %d", findFirstMissing(arr, 0, n-1))
} }

Loading…
Cancel
Save