当前位置: 首页 > article >正文

367.有效地完全平方数

目录

  • 题目
  • 解法
  • 解法二
  • 问题

题目

给你一个正整数 num 。如果 num 是一个完全平方数,则返回 true ,否则返回 false 。

完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。

不能使用任何内置的库函数,如 sqrt 。

解法

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


解法二

掌握常见数列的特性,也能帮助解题
完全平方数的特性:每个完全平方数都可以表示为从 1 开始的连续奇数之和

var isPerfectSquare = function(num) {
    if (num < 0) {
        return false;
    }
    
    let i = 1;
    while (num > 0) {
        num -= i;
        i += 2;
    }
    
    return num === 0;
};

问题

有一个用例容易得到内存溢出的问题
在这里插入图片描述
在这里插入图片描述
需要用long类型,并把int类型强转
在这里插入图片描述


http://www.kler.cn/a/385708.html

相关文章:

  • 域名服务系统DNS (Domain Name System)
  • BFD8122防爆轻便移动工作灯
  • 解耦与模块化:鸿蒙平台上的服务注册与查找机制
  • CTF-WEB:PHP伪协议用法总结
  • Spring Validation数据校检
  • Visa指令简介
  • 出海企业如何借助云计算平台实现多区域部署?
  • linux---vi和vim快捷键
  • 「QT」几何数据类 之 QMatrix4x4 4x4矩阵类
  • window 利用Putty免密登录远程服务器
  • 【目标检测】目标检测中全连接层(Fully Connected Layer)
  • 听说你想要快速搭建 Web 应用?轻量应用服务器绝对适合你
  • 【Python有哪些优点和缺点】
  • 【工具类】JAVA开发从SFTP服务器下载文件
  • Python函数和对象
  • 【Rust.Crate之tracing 诊断系统】
  • 星空天文 2.0.1| 完全免费的观星软件,无注册登录,天文爱好者必备。
  • 如何让3dsMax渲染效果更逼真好看?
  • HarmonyOS 移
  • Unity网络通信(part7.分包和黏包)
  • 3.2cpu
  • 初级数据结构——顺序表
  • Pr 视频过渡:沉浸式视频 - VR 球形模糊
  • 音视频入门基础:FLV专题(23)——FFmpeg源码中,获取FLV文件音频信息的实现(下)
  • MySQL 和 PostgreSQL 常见区别和联系
  • 信息收集(CISP-PTE笔记)