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

day47——平方数之和(LeetCode-633)

题目描述

给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a^2 + b^2 = c 。

示例 1:

输入:c = 5
输出:true
解释:1 * 1 + 2 * 2 = 5

示例 2:

输入:c = 3
输出:false

提示:

  • 0 <= c <= 2^31 - 1

解决方案:

1、数据大小范围:long long,(int 的极限是2^32 -1)

2、平方数就先取该数的算术平方根,分别讨论边界条件

3、算术平方根即是边界极值,另一值从0或1 开始,根据符合条件的大小比较,去压缩中间区域:即极值的左移或右移。

函数源码:

class Solution {
public:bool judgeSquareSum(int c) {long long a=1;long long b=sqrt(c);double x=sqrt(c);if(x==b)     return true;while(true){if(a>b) return false;if(a*a+b*b==c)       break;else if(a*a+b*b>c)   b--;else                 a++;}return true;}
};
http://www.xdnf.cn/news/50329.html

相关文章:

  • javase 学习
  • SQL语句执行顺序
  • QML Universal样式
  • 在 Debian 12 中恢复被删除的 smb.conf 配置文件
  • Python基础总结(八)之循环语句
  • 【RabbitMQ | 第2篇】RabbitMQ 控制台实现消息路由 + 数据隔离
  • 本地化部署ASR服务程序:以FastASR为例
  • 使用 NEAT 进化智能体解决 Gymnasium 强化学习环境
  • 通过 WebSocket 接收和播放 WSS 协议视频流
  • Transformers是一种基于自注意力机制的神经网络模型
  • 王博:影视领域的多元创作先锋,以卓越才华开启新篇章
  • Java——类和对象
  • Nacos深度剖析与实践应用之-配置中心
  • RenderStage::drawInner
  • Vue如何实现样式隔离
  • 【Python笔记 01】变量、标识符
  • C++每周一篇
  • 零点、驻点、拐点、极值点、最值点的定义、几何意义、求解方法
  • MACOS 中聚焦使用技巧
  • 云效部署实现Java项目自动化部署图解
  • 基于SpringBoot+Vue实现的旅游景点预约平台功能一
  • Dijkstra 算法入门笔记 (适用于算法竞赛初学者) - C++ 代码版
  • 与cozi人工智能类似的产品有哪些以及它们的优缺点
  • P8512 [Ynoi Easy Round 2021] TEST_152 Solution
  • Java基础语法
  • 坐标轴刻度QCPAxisTicker
  • Web3.0热门领域NFT项目实战课程
  • 使用virtualbox的HostOnly建立共享网络-实现虚拟机上网
  • Function calling LLMs 的 MCP:AI开发的双剑合璧
  • 访问”和“初始化本质区别以及C++静态成员变量定义位置详解