From 177834ce5e7e65fc513a38b4337fe7f82770ce4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BD=A9=E8=BE=95=E9=BE=99=E5=84=BF?= Date: Tue, 12 Apr 2022 16:56:47 +0800 Subject: [PATCH] =?UTF-8?q?367:=E6=9C=89=E6=95=88=E7=9A=84=E5=AE=8C?= =?UTF-8?q?=E5=85=A8=E5=B9=B3=E6=96=B9=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../editor/cn/ValidPerfectSquare.java | 66 +++++++++++++++++++ .../cn/doc/content/ValidPerfectSquare.md | 28 ++++++++ 2 files changed, 94 insertions(+) create mode 100644 src/main/java/leetcode/editor/cn/ValidPerfectSquare.java create mode 100644 src/main/java/leetcode/editor/cn/doc/content/ValidPerfectSquare.md diff --git a/src/main/java/leetcode/editor/cn/ValidPerfectSquare.java b/src/main/java/leetcode/editor/cn/ValidPerfectSquare.java new file mode 100644 index 0000000..8ab330f --- /dev/null +++ b/src/main/java/leetcode/editor/cn/ValidPerfectSquare.java @@ -0,0 +1,66 @@ +//给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。 +// +// 进阶:不要 使用任何内置的库函数,如 sqrt 。 +// +// +// +// 示例 1: +// +// +//输入:num = 16 +//输出:true +// +// +// 示例 2: +// +// +//输入:num = 14 +//输出:false +// +// +// +// +// 提示: +// +// +// 1 <= num <= 2^31 - 1 +// +// Related Topics 数学 二分查找 👍 371 👎 0 + +package leetcode.editor.cn; + +//367:有效的完全平方数 +public class ValidPerfectSquare { + public static void main(String[] args) { + Solution solution = new ValidPerfectSquare().new Solution(); + // TO TEST + System.out.println(solution.isPerfectSquare(16)); + System.out.println(solution.isPerfectSquare(808201)); + } + + //leetcode submit region begin(Prohibit modification and deletion) + class Solution { + public boolean isPerfectSquare(int num) { + if (num * num == num) { + return true; + } + int left = 0; + int right = num; + while (left < right) { + int mid = (right - left) / 2 + left; + long mul = (long) mid * mid; + if (mul == num) { + return true; + } + if (mul < num) { + left = mid + 1; + } else { + right = mid; + } + } + return false; + } + } +//leetcode submit region end(Prohibit modification and deletion) + +} diff --git a/src/main/java/leetcode/editor/cn/doc/content/ValidPerfectSquare.md b/src/main/java/leetcode/editor/cn/doc/content/ValidPerfectSquare.md new file mode 100644 index 0000000..b941bbd --- /dev/null +++ b/src/main/java/leetcode/editor/cn/doc/content/ValidPerfectSquare.md @@ -0,0 +1,28 @@ +

给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false

+ +

进阶:不要 使用任何内置的库函数,如  sqrt

+ +

 

+ +

示例 1:

+ +
+输入:num = 16
+输出:true
+
+ +

示例 2:

+ +
+输入:num = 14
+输出:false
+
+ +

 

+ +

提示:

+ + +
Related Topics
  • 数学
  • 二分查找

  • 👍 371
  • 👎 0
  • \ No newline at end of file