两数平方和

2024-02-24 03:38
文章标签 平方和

本文主要是介绍两数平方和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述:判断一个非负整数是否为两个整数的平方和。

可以看成是在元素为 0~target 的有序数组中查找两个数,使得这两个数的平方和为 target,如果能找到,则返回 true,表示 target 是两个整数的平方和。

本题和 Two Sum II - Input array is sorted 类似,只有一个明显区别:一个是和为 target,一个是平方和为 target。本题同样可以使用双指针得到两个数,使其平方和为 target。

本题的关键是右指针的初始化,实现剪枝,从而降低时间复杂度。设右指针为 x,左指针固定为 0,为了使 02 + x2 的值尽可能接近 target,我们可以将 x 取为 sqrt(target)。

因为最多只需要遍历一次 0~sqrt(target),所以时间复杂度为 O(sqrt(target))。又因为只使用了两个额外的变量,因此空间复杂度为 O(1)。

/*** @author Mr.superbeyone* @project algorithms* @className SumOfSquareNumbers* @description 两数平方和* @date 2020-08-25 12:12**/public class SumOfSquareNumbers {public static void main(String[] args) {int num = 5;boolean result = judgeSquareSum(num);System.out.println(result);}public static boolean judgeSquareSum(int c) {int i = 0, j = (int) Math.sqrt(c);while (i <= j) {int sum = i * i + j * j;if (sum == c) {return true;} else if (sum < c) {i++;} else {j--;}}return false;}
}

LeetCode

这篇关于两数平方和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/740842

相关文章

Golang-指定文本,求奇数行正数平方和

在stack看到HENNGE公司的招聘信息,于是去参加了一次线上笔试。对方法发了三道题,此为第一道题——使用Golang处理文本。 下为要求: 仔细思考后,发现一个规律: 第1行指定总行数;偶数行n指定下一行奇数行n+1行的个数;全部数据喂完后出结果,意味着最后是扔进数组,放到最后遍历。 提示: 要求不能使用for;只能使用基本库。 因为Golang的循环语句出来了for,只剩下g

第11讲-项目四-双精度浮点数的和、平均值、平方和以及平方和开根号

任务和代码 /**Copyright (c)2015,CSDN学院*All rights reserved.*文件名称:main.c*作 者:胡先军*完成日期:2015年4月27日*版 本 号:v1.0**问题描述:输入3个双精度实数,求出它们的和、平均值、平方和以及平方和的开方*程序输出:4个结果*/#include <stdio.h>#include <mat

acm平方和与立方和

Problem D: 平方和与立方和 Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 644   Solved: 248 [ Submit][ Status][ Web Board] Description 给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。 Input 输入数据包含多组测试实例,每组测

残差平方和(RSS)、均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)

残差平方和(RSS) 等同于SSE(误差项平方和) 实际值与预测值之间差的平方之和。 MSE: Mean Squared Error 均方误差是RSS的期望值(或均值); MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。 RMSE 均方根误差:均方根误差是均方误差的算术平方根 MAE :Mean Absolute Error 平均绝对误差是绝对

平方和定理

在数论里,平方和定理的对象为整数 n>1 n > 1 n>1能够被写为两个平方和的形式,即 n=a2+b2 n = a 2 + b 2 n=a^2+b^2。该定理如下: 一个比 1 1 1大的整数能够被写成两个平方的和的形式,当且仅当它的素数分解中不包含这样的素数,该素数对4取余等于3且该素数的指数为奇数。例如,2450=2⋅52⋅722450=2⋅52⋅722450=2\cdot 5

暑假编程训练---F:平方和与立方和

Problem F:平方和与立方和 Time Limit:1000MS  Memory Limit:65536K Total Submit:3 Accepted:3 Description 给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。 Input 输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。 Output 对于每组输入数据,输出一

AI笔记: 关于回归、线性回归、预测残差、残差平方和

关于回归 这里给出了一个典型的回归任务,假设我们要根据商品在线广告的费用来预测每月电子商务的销售量通常的做法是会收集到很多历史数据,然后假设某个商品他在线广告的费用是1.7的时候,每月电子商务的销售量是368广告费用是1.5的时候,销售达成340等等,有了这些数据之后,我们希望能学习到在线广告费用,对电子商务的销售量的一个影响给一个新的数据,我们只知道在线广告的费用假设是2.8的时候,

6.4.编程计算输出1到N之间的所有数的平方和立方。其中n值由用户从键盘输入

#include<stdio.h>int main(){int n,i,pf,lf;scanf("%d",&i);for(n=1;n<=i;n++){pf=n*n;lf=(n*n)*n;printf("%d %d\n",pf,lf);pf=0;lf=0;}return 0;}

解决拉格朗日四平方和定理

1 问题 “拉格朗日四平方数和定理”是数学中著名的一个定理,其内容为:任意一个正整数均可表示为四个整数的平方和(其中有些整数可以为零)。要求输入一个数,找出所有符合该定理的四个整数? 2 方法 可以通过“四平方数和定理”的含义来解决,即四个整数的平方和,最后等于用户输入的数值。这里采用最简单的循环来解决,分别给出四个循环,判断这四个循环,循环出来的数的平方和是否等于用户输入的值,如果等于用户输入

【线段树】【区间更新】2916. 子数组不同元素数目的平方和 II

算法可以发掘本质,如: 一,若干师傅和徒弟互有好感,有好感的师徒可以结对学习。师傅和徒弟都只能参加一个对子。如何让对子最多。 二,有无限多1X2和2X1的骨牌,某个棋盘若干格子坏了,如何在没有坏的格子放足够多骨牌。 三,某个单色图,1表示前前景,0表示后景色。每次操作可以将一个1,变成0。如何在最少得操作情况下,使得没有两个1相邻(四连通)。 四,若干路人,有些人是熟人,如何选出最多的人参加实验。