From 2b9b3a85487e893a3bf401be93f17ac6590ed191 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Furkan=20T=C3=BCrkal?= Date: Thu, 6 Dec 2018 13:51:28 +0300 Subject: [PATCH] [fix] array-smallest-missing-number parameters --- .../array-smallest-missing-number.go | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/array-smallest-missing-number/array-smallest-missing-number.go b/array-smallest-missing-number/array-smallest-missing-number.go index 60f08a8..4186e39 100644 --- a/array-smallest-missing-number/array-smallest-missing-number.go +++ b/array-smallest-missing-number/array-smallest-missing-number.go @@ -8,29 +8,34 @@ package main import "fmt" +import "os" -func findFirstMissing (arr []int, start, end int) int { - - if(start > end) { +func findFirstMissing(arr []int, start, end int) int { + if start < 0 { + fmt.Println("Start must be greater than 0") + os.Exit(1) + return 0 + } + + if start > end { return end + 1 } - if(start != arr[start]) { + if start != arr[start] { return start } mid := (start + end) / 2 - if(arr[mid] == mid){ - return findFirstMissing(arr, mid + 1, end) + if arr[mid] == mid { + return findFirstMissing(arr, mid+1, end) } return findFirstMissing(arr, start, end) } - func main() { arr := []int{0, 1, 2, 3, 4, 5, 6, 7, 10} var n int = len(arr) - fmt.Printf("Smallest missing element is %d", findFirstMissing(arr, 0, n - 1)) -} \ No newline at end of file + fmt.Printf("Smallest missing element is %d", findFirstMissing(arr, 0, n-1)) +}