当前位置: 首页 > 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;}
};

相关文章:

  • STM32(M4)入门:GPIO与位带操作(价值 3w + 的嵌入式开发指南)
  • FFmpeg:M3U8的AES加密
  • 《Android 应用开发基础教程》——第三章:布局管理与 UI 组件详解
  • 多模态大语言模型arxiv论文略读(三十一)
  • 机器学习 Day12 集成学习简单介绍
  • [Windows]_[VS2017]_[如何进行远程调试程序]
  • POSIX标准系统调用详解:从概念到实践
  • 破解吞咽困境!进行性核上性麻痹患者的科学饮食方案
  • 62页华为IPD-MM流程:市场调研理论与实践方案精读【附全文阅读】
  • Linux 网络基础(二) (传输协议层:UDP、TCP)
  • 【算法提高】单源最短路的建图方式
  • Linux系统编程---孤儿进程与僵尸进程
  • UML统一建模
  • Vue常用指令入门
  • 【项目实训个人博客】数据集搜集
  • 【python】尾部多写个逗号会把表达式变成 tuple
  • 使用virtualbox的HostOnly建立共享网络-实现虚拟机上网
  • 面向对象编程的四大特性详解:封装、继承、多态与抽象
  • React 自定义Hook之usePrevious
  • 数字孪生废气处理工艺流程
  • 大理杨徐邱上诉案开庭:当事人称曾接受过两次测谎测试
  • 民生访谈|“AI推广是把学生教聪明还是教笨了?这个问题必须回答好”
  • 用了半年的洗衣机竟比马桶还脏,别再这样洗衣服了
  • 人民日报头版开新栏:收官之年干劲满,决战决胜勇争先
  • 深一度|奥运一年后丢冠不稀奇,但究竟谁来扛起男乒的大旗
  • 五一出境游火爆:境外包车订单增长25%,日本酒店价格贵了好几倍