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。

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

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

相关文章

数字图像分析(第二部分)

文章目录 第8章 图像分割图像分割定义阈值分割依赖像素的阈值选取Otsus方法依赖区域的阈值选取依赖坐标的阈值选取变化阈值法区域生长法分裂合并方法分水岭算法聚类分割算法K-meansAP算法Graph cut第9章 图像特征表达基于全局特征的图像表达直方图GIST基于局部特征的图像表达简…

ROS中里程计崩溃的原因分析

里程计节点崩溃可能由多种原因引起&#xff0c;以下是一些可能的因素&#xff1a; 1. **场景特征不足**&#xff1a;如果机器人或车辆所处环境缺乏足够的特征&#xff08;如在单调、重复纹理的地面或墙面&#xff09;&#xff0c;视觉里程计等定位方法可能因找不到匹配特征而失…

JavaScript通用下载方法,但jpg图片下载打不开

通用下载方法&#xff0c;通过Blob的方式&#xff0c;访问Url地址&#xff0c;下载对应的图片&#xff0c;excel等文件。 axios({method: "get",url,responseType: "blob",}).then((res: any) > {const link document.createElement("a");co…

安装IIS报错 0x8024402C

我在windows2012上安装.NET 运行环境时&#xff0c; 先安装的sqlserver&#xff0c; 然后提示缺少framework3.5的安装之类的。 然后又进行IIS和.NET运行库framework的安装&#xff0c;结果也提示安装失败&#xff0c;错误代码0x8024402C。 我照着网上的帮助卸载了sqlserver 并…

前端打包配置+nginx配置实现部署及部署地址带特定前缀的几种方式

前端打包后要部署到服务器&#xff0c;在浏览器中可以通过url访问到我们开发的系统&#xff0c;通过nginx代理在工作中是一种很常用的方式。 这里以本地为例&#xff0c;把本地电脑当作一个服务器&#xff0c;实现普通部署、带特定前缀等 前端使用vue-clivue作为例子 以下内容…

第2次作业

问题&#xff1a;cs与msf权限传递&#xff0c;以及mimikatz抓取win2012明文密码。 一、CS与MSF权限传递 CS&#xff08;Cobalt Strike&#xff09;和MSF&#xff08;Metasploit Framework&#xff09;是两种常用的渗透测试工具&#xff0c;它们都支持在渗透过程中传递权限。以…

1.3 Sqoop 数据同步工具详细教程

Apache Sqoop 是一个开源工具&#xff0c;用于在 Apache Hadoop 和关系型数据库&#xff08;如 MySQL、Oracle、PostgreSQL 等&#xff09;之间高效传输数据。Sqoop 可以将结构化数据从关系型数据库导入到 Hadoop 的 HDFS、Hive 和 HBase 中&#xff0c;也可以将数据从 Hadoop …

git 多分支实现上传文件但避免冲突检测

文章目录 背景实现步骤 背景 对于某些通过命令生成的配置文件&#xff08;如 TypeScript 类型文件等&#xff09; 实现步骤 1

背包问题(动归)

目录 问能否能装满背包&#xff08;或者最多装多少&#xff09;&#xff1a;dp[j] max(dp[j], dp[j - nums[i]] nums[i]); 对应题目如下&#xff1a; 416.分割等和子集 (物品正序&#xff0c;背包倒序) 问装满背包有几种方法&#xff1a;dp[j] dp[j - nums[i]] &#xff…

父级设置最大宽度,其宽度自适应子级中的内容

父级宽度自适应 1.父级限制最大宽度 2.子级竖着排放,每列的个数明确 3.父级的宽度跟随子级元素的个数变化宽度 tips: 因为父级要设置"background-color"属性,所以父级DIV必须要给明确的宽高,这就意味着纯CSS自适应宽度无法做到(好吧,是我做不到) HTML <temp…

茴香豆接入微信个人助手部署

将rag产品接入微信工作群&#xff0c;自动回答问题&#xff0c;香吗&#xff1f;&#xff1f; let‘s go 1、打开openxlab平台&#xff0c;找到茴香豆web产品应用中心-OpenXLab 点击进入&#xff0c;设置知识库名字和密码 2、上传知识库文件和编辑正反例等 3、然后进行测试问答…

电脑开机之后屏幕没有任何显示?怎么检查?

前言 最近有很多小伙伴来咨询&#xff0c;自己的电脑开机之后&#xff0c;屏幕真的是一点显示都没有&#xff0c;只有CPU风扇在转。 这个情况小白经常经常经常遇到&#xff0c;所以写一篇关于这个问题的排查教程。按照这个教程来排查&#xff0c;除非真的是硬件损坏&#xff…

算法第八天:leetcode234.回文链表

给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;head [1,2…

面向对象编程——python

目录 一、面向对象编程 1.1 类和对象 1.2 继承 1.3 封装 1.4 多态 1.5 Python中的面向对象编程 二、类、对象和变量 2.1 类&#xff08;Class&#xff09; 2.2.1 类的属性&#xff08;Class Attributes&#xff09; 2.2.2 类的方法&#xff08;Class Methods…

对类与对象的(二)补充

1.Date这样的构造函数 析构函数 拷贝构造 默认构造函数有三种 &#xff1a;全缺省的构造函数 无参的构造函数 和编译器默认生成的构造函数 class Date {pubilc&#xff1a;void Print&#xff08;&#xff09; { } private&#xff1a;//全缺省的int year1;int month1;int …

二叉树的广度优先搜索(层次遍历)

目录 定义 层序遍历的数据结构 实现过程简述 具体代码 定义 层序遍历就是从左到右一层一层地遍历二叉树。 层序遍历的数据结构 层序遍历需要借用一个辅助数据结构实现&#xff0c;由于队列具有先进先出的特性&#xff0c;符合一层一层遍历的逻辑&#xff0c;而栈先进后出…

PHP框架之Laravel框架

Laravel框架详解 Laravel&#xff0c;作为一款广受欢迎的PHP Web开发框架&#xff0c;以其优雅、简洁的语法和强大的功能特性&#xff0c;赢得了全球众多开发者的青睐。下面&#xff0c;我们将从Laravel的特点、应用案例以及具体的框架使用等方面进行详细解析。 一、Laravel框…

甲子光年专访天润融通CEO吴强:客户经营如何穿越低速周期?

作者&#xff5c;陈杨、编辑&#xff5c;栗子 社会的发展从来都是从交流和联络开始的。 从结绳记事到飞马传信&#xff0c;从电话电报到互联网&#xff0c;人类的联络方式一直都在随着时代的发展不断进步。只是传统社会通信受限于技术导致效率低下&#xff0c;对经济社会产生影…

LLaMA:挑战大模型Scaling Law的性能突破

实际问题 在大模型的研发中,通常会有下面一些需求: 计划训练一个10B的模型,想知道至少需要多大的数据?收集到了1T的数据,想知道能训练一个多大的模型?老板准备1个月后开发布会,给的资源是100张A100,应该用多少数据训多大的模型效果最好?老板对现在10B的模型不满意,想…

退市新规解读—财务类强制退市

一、退市风险警示&#xff1a;第一年触及相关指标 上市公司最近一个会计年度触及下列退市风险指标之一&#xff0c;公司股票或存托凭证被实施退市风险警示(*ST)&#xff1a; 第1项 组合类财务指标 仅发行A股或B股&#xff0c;最近一个会计年度或追溯重述后最近一个会计年度 …