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

力扣-数组-367 有效的完全平方数

思路和时间复杂度

  1. 思路:利用二分,确定区间是左闭右闭,然后根据大小进行二分
  2. 时间复杂度: O(logn)      

代码

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


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

相关文章:

  • 【机器学习的主要类型】
  • HTML5 + Bootstrap5 网站底部代码实现与解析
  • Django系列教程(3)——Django的MVT设计模式
  • 大语言模型(LLM)的微调与应用
  • Elasticsearch 2025/3/7
  • 【漫话机器学习系列】125.普拉托变换(Platt Scaling)
  • 【UNIAPP】获取视频的第一帧作为封面(基于视频URL,Canvas)复制即用
  • git文件过大导致gitea仓库镜像推送失败问题解决(push failed: context deadline exceeded)
  • 在VMware Workstation Pro上轻松部署CentOS7 Linux虚拟机
  • 使用Java爬虫根据关键词获取衣联网商品列表:实战指南
  • 《2025年软件测试工程师面试》MySQL面试题
  • Linux 环境变量快速上手指南
  • 《UI 设计:点亮大数据可视化的智慧之光》
  • 告别手抖烦恼,重拾生活稳 “态”
  • 【物联网-WIFI】
  • 【MySQL】增删改查进阶
  • 【测试框架篇】单元测试框架pytest(5):setup和teardown的详细使用
  • 2.4 基于Vitest的单元测试基础设施搭建
  • DeFi基石ERC4626标准实现一个金库合约
  • 聊一聊大型 Unity 游戏资源打包