From 8a4f57fa55de214984d9d16c59bbc45a75ece75b Mon Sep 17 00:00:00 2001 From: Azureki Date: Sun, 28 Apr 2019 21:42:23 +0800 Subject: [PATCH] go implementation --- .../valid_perfect_square.go | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 367. Valid Perfect Square/valid_perfect_square.go diff --git a/367. Valid Perfect Square/valid_perfect_square.go b/367. Valid Perfect Square/valid_perfect_square.go new file mode 100644 index 0000000..eb8bb60 --- /dev/null +++ b/367. Valid Perfect Square/valid_perfect_square.go @@ -0,0 +1,20 @@ +package problem367 + +func isPerfectSquare(num int) bool { + if num == 1 { + return true + } + left, right := 0, num + var mid int + for left <= right { + mid = (left + right) / 2 + if mid*mid == num { + return true + } else if mid*mid < num { + left = mid + 1 + } else { + right = mid - 1 + } + } + return false +}