633. 平方数之和(中等)
633. 平方数之和
- 1. 题目描述
- 2.详细题解
- 3.代码实现
- 3.1 Python
- 3.2 Java
- 内存溢出溢出代码
- 正确代码与截图
1. 题目描述
题目中转:633. 平方数之和

2.详细题解
本题是167. 两数之和 II - 输入有序数组(中等)题目的变型,由两数之和变为两数平方之和,判断是否存在满足条件的两个整数a和b,使之平方之和等于给定的整数c。
对于给定整数c,a和b最小值为0,最大值为c的平方根,因此,两个双指针的初始值分别为0和c的平方根(取整数),算法如下:
- Step1:初始化:left=0,right=c的平方根取整;
- Step2:计算left和right指向数字平方之和;
- Step3:如果平方之和等于给定数字c,则中止返回True
- Step4:如果平方之和大于给定数字c,则右指针right减少1,让平方之和小一点;
- Step5:如果平方之和小于给定数字c,则左指针left增加1,让平方之和大一点;
- Step6:重复步骤Step2_Step5.
3.代码实现
3.1 Python
import math
class Solution:def judgeSquareSum(self, c: int) -> bool:left, right = 0 , int(math.sqrt(c))res = Falsewhile left <= right:sum = left ** 2 + right ** 2if sum == c:res = Truebreakelif sum > c:right -= 1else:left += 1return res

3.2 Java
- Java实现需要尤其注意的是,对于数字有数据类型,仔细查看题意要求的数字范围,因此需要使用long整数类型,否则程序会因为内存溢出导致错误结果,如下代码和截图所示:
内存溢出溢出代码
class Solution {public boolean judgeSquareSum(int c) {int left = 0, right = (int) Math.sqrt(c);int total = 0;boolean res = false;while (left <= right){total = left * left + right * right;if (total == c){res = true;break;}else if(total > c){right--;}else{left++;}}return res;}
}

调整整数数据类型,重新debug代码:
正确代码与截图
class Solution {public boolean judgeSquareSum(int c) {long left = 0, right = (long) Math.sqrt(c);long total = 0;boolean res = false;while (left <= right){total = left * left + right * right;if (total == c){res = true;break;}else if(total > c){right--;}else{left++;}}return res;}
}

执行用时不必过于纠结,对比可以发现,对于python和java完全相同的编写,java的时间一般是优于python的;至于编写的代码的执行用时击败多少对手,执行用时和网络环境、当前提交代码人数等均有关系,可以尝试完全相同的代码多次执行用时也不是完全相同,只要确保自己代码的算法时间复杂度满足相应要求即可,也可以通过点击分布图查看其它coder的code。
相关文章:
633. 平方数之和(中等)
633. 平方数之和 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java内存溢出溢出代码正确代码与截图 1. 题目描述 题目中转:633. 平方数之和 2.详细题解 本题是167. 两数之和 II - 输入有序数组(中等)题目的变型,由两数之和变…...
GIT回滚
1. 使用 git revert git revert 命令会创建一个新的提交,这个提交会撤销指定提交的更改。这通常用于公共分支(如 main 或 master),因为它不会重写历史。 git revert HEAD # 撤销最近的提交 # 或者指定一个特定的提交哈希值 …...
BEVM基于OP-Stack发布首个以WBTC为GAS连接以太坊和比特币生态的中继链
为了更好的连接以太坊和比特币生态,BEVM团队正在基于OPtimism的OP Stack来构建一个以WBTC为GAS兼容OP-Rollup的中继链,这条中继链将作为一种完全去中心化的中间层,把以太坊上的主流资产(WBTC/ ETH/USDC/USDT等)引入到BEVM网络。 不仅如此&am…...
【vuejs】 $on、$once、$off、$emit 事件监听方法详解以及项目实战
1. Vue实例方法概述 1.1 vm.$on vm.$on是Vue实例用来监听自定义事件的方法。它允许开发者在Vue实例上注册事件监听器,当事件被触发时,指定的回调函数会被执行。 事件监听:vm.$on允许开发者绑定一个或多个事件到Vue实例上,并且可…...
如何下载植物大战僵尸杂交版,最全攻略来了
《植物大战僵尸杂交版》由热爱原版游戏的B站UP主“潜艇伟伟迷”独立开发,带来了创新的游戏体验。如果你是策略游戏的爱好者,下面这份全面的下载和游玩攻略将是你的理想选择。 游戏亮点: 杂交植物系统:结合不同植物特性,…...
小公司全栈是归宿吗?
在软件开发领域,特别是在小公司或初创公司中,全栈开发者的角色确实相对普遍和重要。然而,说“全栈是归宿”可能过于绝对,因为每个开发者的职业路径和兴趣点都是不同的。 以下是关于全栈开发在小公司的一些考虑: 需求…...
对https://registry.npm.taobao.org/tyarn的请求失败,原因:证书过期
今天安装yarn时,报错如下: request to https://registry.npm.taobao.org/yarn failed, reason: certificate has expired 原来淘宝镜像过期了,需要重新搞一下 记录一下解决过程: 1.查看当前npm配置 npm config list 2.清…...
Redisson-Lock-加锁原理
归档 GitHub: Redisson-Lock-加锁原理 Unit-Test RedissonLockTest 说明 源码类:RedissonLock // 加锁入口 Override public void lock() { lock(-1, null, false); }/*** 加锁实现 */ private void lock(long leaseTime, TimeUnit unit, boolean interruptib…...
deepspeed win11 安装
目录 git地址: aio报错: 编译 报错 ops已存在: 修改拷贝代码: git地址: Bug Report: Issues Building DeepSpeed on Windows Issue #5679 microsoft/DeepSpeed GitHub aio报错: setup.py 配置变量 os.environ[DISTUTILS_USE_SDK]=1 os.environ[DS_BUILD_AIO]=…...
Python列表函数append()和extend()的区别
Python列表提供了两个容易混淆的追加函数:append()和extend()。它们之间的使用区别如下: list.append(obj):对象进栈。将一个对象作为整体追加到列表最后,返回Nonelist.extend(iter):可迭代对象的元素逐个进栈。将一个…...
Spring AI 实现调用openAi 多模态大模型
什么是多模态? 多模态(Multimodal)指的是数据或信息的多种表现形式。在人工智能领域,我们经常会听到这个词,尤其是在近期大型模型(如GPT-4)开始支持多模态之后。 模态:模态是指数据的一种形式,例如文本、图像、音频等。每一种形式都是一种模态。多模态:多模态就是将…...
《妃梦千年》第十二章:层层迷雾
第十二章:层层迷雾 苏珊遭遇险境的消息让林清婉感到紧张。她知道,宫中有些人对她的势力感到威胁,试图通过伤害苏珊来打击她。林清婉决定采取更谨慎的措施保护自己和苏珊,同时查明幕后黑手的身份。 几天后,林清婉收到…...
java的字节符输出流基类、File Writer类和Buffered Writer类
一、字节符输出流基类:Writer 1.属于抽象类 2.常用方法 二、字节符输出流Flie Writer类 1.是writer类的子类 2.以字符为数据处理单元向文本文件中写数据 3.示例 4.实现步骤 三、BufferedWriter类 1.是Writer类的子类。 2.带有缓冲区 默认情况下,…...
qt 简单实验 一个可以向右侧拖拽缩放的矩形
1.概要 目的是设置一个可以拖拽缩放的矩形,这里仅用右侧的一个边模拟这个过程。就是为了抓住核心,这个便解决了,其他的边也是一样的。而这个更能体现原理。 2.代码 2.1 resizablerectangle.h #ifndef RESIZABLERECTANGLE_H #define RESIZ…...
Google Adsense----Wordpress插入谷歌广告
1.搭建个人博客,绑定谷歌search consol,注册adsense 详细可以参考这个视频b站视频 2.将个人博客网站关联到Adsense 在adsense里新加网站,输入你的博客网址,双击网站 将这段代码复制到header.php的里面 在wordpress仪表盘的外观-主题文件编辑器,找到header.php将代码复制,…...
2-17 基于matlab的改进的遗传算法(IGA)对城市交通信号优化分析
基于matlab的改进的遗传算法(IGA)对城市交通信号优化分析。根据交通流量以及饱和流量,对城市道路交叉口交通信号灯实施合理优化控制,考虑到交通状况的动态变化,及每个交叉口的唯一性。通过实时监测交通流量,…...
VOC格式转YOLO格式,xml文件转txt文件简单通用代码
目录 前言 思路介绍 代码 完整代码 拓展代码 前言 很多人在进行目标检测训练时习惯将得到的数据标注为XML文件的VOC格式,或者在网上获取的数据集被标注为XML文件,但是不同的标注工具进行的标注会产生不同的标注xml文件,这里我写了一种通用…...
STL迭代器的基础应用
STL迭代器的应用 迭代器的定义方法: 类型作用定义方式正向迭代器正序遍历STL容器容器类名::iterator 迭代器名常量正向迭代器以只读方式正序遍历STL容器容器类名::const_iterator 迭代器名反向迭代器逆序遍历STL容器容器类名::reverse_iterator 迭代器名常量反向迭…...
【SQL】数据操作语言(DML) - 删除数据:精细管理数据的利刃
目录 前言 DELETE语句的基础使用 删除指定记录 清空表与删除表数据的区别 注意 前言 在数据库管理的日常工作中,数据的删除是一项需要格外小心的操作,因为一旦数据被删除,往往难以恢复。数据操作语言(DML)中的DELETE语句&am…...
异步复制,主库宕机后,数据可能丢失吗?
异步复制是数据库复制的一种方式,它允许主数据库(主库)在不等待从数据库(从库)完成数据同步的情况下继续处理事务。这种方式可以提高数据库的性能,因为主库不需要等待数据复制到从库。然而,异步…...
基于Coze工作流实现内容智能分发:从公众号到多平台图文一键同步
1. 为什么你需要一个智能内容分发系统 每次写完公众号文章,你是不是也和我一样头疼?要把同样的内容搬运到小红书、抖音、视频号这些平台,每次都要重新排版、改标题、调整图片尺寸,一套流程下来至少得花上两小时。更糟的是…...
QSS样式表避坑指南:为什么你的Qt界面美化总是不生效?
QSS样式表深度解析:从失效原理到高效美化实战 在Qt界面开发中,QSS(Qt Style Sheets)作为界面美化的核心工具,其重要性不亚于CSS之于网页设计。然而许多开发者在使用过程中常遇到样式失效、优先级混乱等问题。本文将系统…...
从OBS源码看WASAPI实战:Windows音频采集的‘静音循环’修复与高精度时间戳处理
从OBS源码剖析WASAPI音频采集:静音循环修复与高精度时间戳的工程实践 在直播软件OBS的音频处理模块中,WASAPI接口的高效运用直接决定了音画同步质量与系统资源占用率。本文将深入OBS源码,揭示其解决Windows音频采集两大核心难题的技术方案&am…...
终极终端效率提升指南:au/autocomplete如何让命令输入快如闪电
终极终端效率提升指南:au/autocomplete如何让命令输入快如闪电 【免费下载链接】autocomplete 为你的现有终端和Shell提供类似IDE风格的自动补全功能 项目地址: https://gitcode.com/GitHub_Trending/au/autocomplete 在当今快节奏的开发环境中,终…...
JSON-C 安全编程:如何避免 JSON 相关的安全漏洞
JSON-C 安全编程:如何避免 JSON 相关的安全漏洞 【免费下载链接】json-c https://github.com/json-c/json-c is the official code repository for json-c. See the wiki for release tarballs for download. API docs at http://json-c.github.io/json-c/ 项目地…...
LIS3DH加速度计驱动开发与嵌入式应用实战
1. MentorBit-LIS3DH 库深度技术解析:面向嵌入式工程师的 LIS3DH 加速计驱动开发指南1.1 项目定位与工程价值MentorBit-LIS3DH 是一款专为 MentorBit 教育开发平台设计的轻量级 C 封装库,其核心目标并非提供通用型传感器抽象层,而是在硬件约束…...
深入解析acts-as-taggable-on:Rails标签系统的终极实现指南
深入解析acts-as-taggable-on:Rails标签系统的终极实现指南 【免费下载链接】acts-as-taggable-on A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts. 项目地址: https://gitcode.com/gh_mirrors/ac/acts-as-tagg…...
Audacity:免费开源的全能音频编辑与录制解决方案
Audacity:免费开源的全能音频编辑与录制解决方案 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity Audacity 是一款免费开源的音频编辑与录制软件,支持多轨录音、音频剪辑、效果处理等专业功…...
告别网线乱绕!实测Windows 10/11的‘移动热点’与‘网络共享’到底哪个更适合给开发板共享网络
Windows网络共享方案深度评测:移动热点 vs 适配器共享 每次在工作室调试开发板时,最头疼的就是网线缠绕的问题。作为嵌入式开发者,我们经常需要为各种开发板(比如STM32、树莓派或者RK3588套件)提供网络连接。Windows系…...
告别样本不平衡噩梦:Focal Loss 让你的模型学会“划重点”
我说的不是 Python 那个 HTTPX 客户端,而是 ProjectDiscovery 出的 httpx。官方对它的定义很直接: 一个高性能、面向多探针的 HTTP 工具包支持高并发下对 URL、主机、CIDR 等 目标做 HTTP 层探测,并尽量保证结果稳定性。 它本质上不是漏洞扫描…...
