wordpress主题站模板,wordpress网站建设教程,seo怎么搞,营销推广投放最近是在研究双指针啊#xff0c;leetcode刷的题都是这方面的。都记录在最近的文章里#xff0c;大家有兴趣可以去我主页看看 LCP633 平方数之和
给定一个非负整数 c #xff0c;你要判断是否存在两个整数 a 和 b#xff0c;使得 a2 b2 c 。
示例 1#xff1a;
输入leetcode刷的题都是这方面的。都记录在最近的文章里大家有兴趣可以去我主页看看 LCP633 平方数之和
给定一个非负整数 c 你要判断是否存在两个整数 a 和 b使得 a2 b2 c 。
示例 1
输入c 5
输出true
解释1 * 1 2 * 2 5方法1食我双指针啊
显然这里是在给定范围内找找两个数字满足条件双指针再合适不过了
//leetcode官方题解
class Solution {
public:bool judgeSquareSum(int c) {long left 0;long right (int)sqrt(c);while (left right) {long sum left * left right * right;if (sum c) {return true;} else if (sum c) {right--;} else {left;}}return false;}
};这个方法是leetcode官方题解效果如下 方法二直接判断不挺好
class Solution {
public:bool judgeSquareSum(int c) {//对于单独情况分个if就行不然对所有情况编程徒增开销if (c 0) return true;//这里还有一种写法不过每次都要多加一次计算性能较差/*for(int a1;a*ac;a)大家对比一下是否多了一次计算每个循环中多一次计算这个对效率的拖后腿是不能多想*/int sqc (int)(sqrt(c));for (int a 1; a sqc; a){int b (int)(sqrt(c - a * a));if (a * a b * b c) return true;}return false;}
};这是俺的直接循环比较法