367. 有效的完全平方数(java)

简介: 367. 有效的完全平方数(java)

二分法:

class Solution {

public boolean isPerfectSquare(int num) {
  int left = 0,right = num;
  if(num==1)
  {
      return true;
  }
  while(left<right)
  {
      int mid = ((right-left)/2)+left;
      long x = (long)mid*mid;
      if(num<x)
      {
          right=mid;
      }else if(num>x)
        {
            left=mid+1;
        }else
        {
            return true;
        }
  }
  return false;

}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
暴力解法:

int n = 1;

while (num / n >= n) {
    if (num % n==0 && num/n == n) {
        return true;
    }
    n++;
}
return false;

1
2
3
4
5
6
7
8
牛顿迭代:

class Solution {

public boolean isPerfectSquare(int num) {
    double x = num;
    while(x * x - num > 0.00000001){
        x = (num/x + x)/2;
    }
    int y = (int)x;
    return y*y == num;
}

}

相关文章
633. 平方数之和:【最优解】费马平方和性质进行求解|Java 刷题打卡
633. 平方数之和:【最优解】费马平方和性质进行求解|Java 刷题打卡
(JAVA编程练习):一个整数,它加上100后是平方数,再加上168又是一个平方数,该数是?+ 输入三个数,进行小到大排序。
(JAVA编程练习):一个整数,它加上100后是平方数,再加上168又是一个平方数,该数是?+ 输入三个数,进行小到大排序。
(JAVA编程练习):一个整数,它加上100后是平方数,再加上168又是一个平方数,该数是?+ 输入三个数,进行小到大排序。
|
3天前
|
Java 开发者 UED
掌握Java多线程编程:从基础到高级
【5月更文挑战第31天】本文深入探讨了Java多线程编程的核心概念,包括线程的创建、生命周期、同步机制以及高级并发工具。通过实际示例和代码片段,读者将学会如何有效地管理和协调线程,以编写高效且稳定的并发应用程序。
|
3天前
|
安全 Java 调度
Java语言多线程编程技术深度解析
Java语言多线程编程技术深度解析
|
3天前
|
存储 安全 Java
深入理解Java并发编程:线程安全与锁机制
【5月更文挑战第31天】在Java并发编程中,线程安全和锁机制是两个核心概念。本文将深入探讨这两个概念,包括它们的定义、实现方式以及在实际开发中的应用。通过对线程安全和锁机制的深入理解,可以帮助我们更好地解决并发编程中的问题,提高程序的性能和稳定性。
|
4天前
|
缓存 监控 安全
Java的线程池和线程安全
Java的线程池和线程安全
|
3天前
|
安全 算法 Java
Java中的并发编程技术:解锁高效多线程应用的秘密
Java作为一种广泛应用的编程语言,其并发编程技术一直备受关注。本文将深入探讨Java中的并发编程,从基本概念到高级技巧,帮助读者更好地理解并发编程的本质,并学会如何在多线程环境中构建高效可靠的应用程序。
|
3天前
|
Java
Java中多线程的常见实现方式
Java中多线程的常见实现方式
11 2
|
3天前
|
Java 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第31天】本文将深入探讨Java中的多线程编程,从基础知识到实践应用,全面解析多线程的概念、创建、同步以及在实际应用中的运用。我们将通过实例来展示如何在Java中有效地使用多线程,以提高程序的性能和响应速度。
|
3天前
|
存储 安全 Java
Java语言中的多线程编程技术深入解析
Java语言中的多线程编程技术深入解析