请问做网站和编程哪个容易些,wordpress投票功能,自己怎么制作图片,建设银行网站功能633. 平方数之和 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java内存溢出溢出代码正确代码与截图 1. 题目描述
题目中转#xff1a;633. 平方数之和
2.详细题解 本题是167. 两数之和 II - 输入有序数组#xff08;中等#xff09;题目的变型#xff0c;由两数之和变… 633. 平方数之和 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java内存溢出溢出代码正确代码与截图 1. 题目描述
题目中转633. 平方数之和
2.详细题解 本题是167. 两数之和 II - 输入有序数组中等题目的变型由两数之和变为两数平方之和判断是否存在满足条件的两个整数a和b使之平方之和等于给定的整数c。 对于给定整数ca和b最小值为0最大值为c的平方根因此两个双指针的初始值分别为0和c的平方根取整数算法如下 Step1初始化left0,rightc的平方根取整 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 res3.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。