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 +}