LeetCode 367[有效的完全平方数]

news/2024/11/28 20:21:56/文章来源:https://www.cnblogs.com/EricsT/p/18570843

题目

链接

LeetCode 367[有效的完全平方数]

详情

实例

提示

题解

思路

求算术平方根,逐渐遍历的话,数值小应该是没问题的,但是数值大的话时间应该会超出限制

本质是:给定一个数字,在范围内找一个数字的平方为该数,找到了则输出ture,找不到则输出false

转换一个思路,即给定一个数字,在范围内找出该数,也就是查找问题,最基本的方法就是二分查找

 

初始值设定最小值 iMin 为 0,最大值 iMax 为给定值 num

开始循环:

求取中间值 iMid = (iMin + iMax) / 2

取中间值的平方 iMul = iMid * iMid

若 iMul 等于 num,则可以找着算术平方根,即返回 true

若 iMul > num,即 iMid > sqrt(num),即所求值小于 iMid,需要在 iMin 到 iMid -1 范围中查找,即 iMax = iMid - 1

若 iMul < num,即 iMid < sqrt(num),即所求值大于 iMid,需要在 iMid + 1 到 iMax 范围中查找,即 iMin = iMid + 1

继续执行循环,直到 iMin > iMax,退出循环,此时为找不到算术平方根,故返回false

代码

class Solution {
public:bool isPerfectSquare(int num) {int iMin = 0;int iMax = num;while (true){long long iMid = (iMin + iMax) / 2;long long iMul = iMid * iMid;if (num == iMul)return true;if (num > iMul)iMin = iMid + 1;elseiMax = iMid - 1;if (iMin > iMax)return false;}}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/841796.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Visual Studio Code 写网页

1、Visual Studio Code双击打开后 ,点击圈主的部分(资源管理器) 会出现 “打开文件夹” 2、点击 “打开文件夹” ,选中想要打开的文件夹 ,点击选择文件 也可以直接拖拽 想要打开的 文件夹 放进来3、可以看道文件夹里面的东西都进来了 之前我们写的 网页 代码 也在这里 可…

WPF 粉笔绘制

在做白板书写的时候,会有各种笔的绘制,比如 书写笔、马克笔、演示笔等等。粉笔的功能需求也是很有必要的。 上网搜了一圈,几乎没有绘制粉笔的。 有的是毛笔、楷体等绘制的如下博客: wpf inkcanvas customink 毛笔效果_wpf inkcanvas 笔锋-CSDN博客 【WPF】 InkCanvas 书写毛…

鸿蒙NEXT开发案例:温度转换

【引言】 温度是日常生活中常见的物理量,但不同国家和地区可能使用不同的温度单位,如摄氏度(Celsius)、华氏度(Fahrenheit)、开尔文(Kelvin)、兰氏度(Rankine)和列氏度(Reaumur)。为了方便用户在这些温度单位之间进行快速准确的转换,我们开发了一款温度转换工具。…

团队项目-7

一、昨日已完成的任务 前后端交互,调用接口完成页面。导入数据等 今日计划完成的任务 继续做好功能,测试运行 工作中遇到的困难 测试运行时出现不少问题,服务器连不上等问题 项目迁入记录代码:总结 一周的学习收获良多,项目实战难度大的同时也给了我们很多动力,是一次珍贵…

windows安全中心,永久卸载工具

使用方法 2024Goby红队版工具分享,附2024年漏洞POC下载 下载链接: https://pan.quark.cn/s/4fc2712a2afc一路回车,选项Y即可耐心等待几秒种,自动重启此时打开windows安全中心,已经完全不能使用了,响应的杀毒功能也关了往期推荐 【渗透测试】DC1~9(全) Linux提权靶机渗透教…

团队项目-6

一、昨日已完成的任务 学习有关springboot,vue等前后端知识,完善数据库和底层框架,学习有关知识,继续做功能接口。今日计划完成的任务 前后端交互,调用接口完成页面。导入数据等 工作中遇到的困难 目前调用接口出现问题,接口有些错误 代码迁入记录项目模块与代码总结 时间…

CTF学习(18)MISC(面具下的flag)

1.解压文件后发现是.wav格式的文件--->使用audacity打开后发现存在摩斯电码摩斯电码: ..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---…

composer引入本地自己开发的php扩展包

开发自己的php扩展包 一、创建扩展包目录结构 1. 创建目录hoo-tool,在目录下创建目录 src 2. 在hoo-tool 目录下 运行命令:composer init3. 运行完命令的效果{"name": "hoo/tool","description": "hoo Tool kit for PHP","type…

博客园 geek 主题备份

预览页面定制 CSS 代码禁用模板默认CSS#loading{bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999;background-color:#f4f5f5;pointer-events:none;}.loader-inner{will-change:transform;width:40px;height:40px;position:absolute;top:50%;left:50%;margin:-20px …

【cesium重新梳理】1.cesium知识整理

之前零零碎碎学过、用过cesium,但也没做记录,现在重新整理一下,方便学习回顾。 1.cesium简介 CesiumJS是一个开源JavaScript库,用于创建具有最佳性能、精度、视觉质量和易用性的世界级3D地球仪和地图。从航空航天到智能城市再到无人机,各行各业的开发人员都使用CesiumJS创…

WebRTC 作者加入 OpenAI 主导实时 AI 项目;TTS 小模型 OuteTTS v0.2 发布:声音克隆+多语言

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

关于mac安装ENSP的一点个人看法

如何在mac上安装ensp呢 目前主流的教程都是教大家在PD上面安装ENSP,但是这样就不可避免的会有两个问题,第一内存够用?第二CPU是什么型号的? 大多数教程中都忽略了这两个问题,就算有,也只是泛泛而言,并没有真正的安装ENSP并且测试。首先MAC电脑要安装ENSP,必须要满足一个…