C#LeetCode刷题之#633-平方数之和( Sum of Square Numbers)
问题
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3885 访问。
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。
输入: 5
输出: True
解释: 1 * 1 + 2 * 2 = 5
输入: 3
输出: False
Given a non-negative integer c, your task is to decide whether there're two integers a and b such that a2 + b2 = c.
Input: 5
Output: True
Explanation: 1 * 1 + 2 * 2 = 5
Input: 3
Output: False
示例
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3885 访问。
public class Program {public static void Main(string[] args) {var num = 3;var res = CheckSumOfSquareNumbers(num);Console.WriteLine(res);num = 5;res = CheckSumOfSquareNumbers2(num);Console.WriteLine(res);Console.ReadKey();}private static bool CheckSumOfSquareNumbers(int c) {//算是暴力解法//不过没必要全部计算,否则肯定TLEvar sqrt = (int)Math.Sqrt(c);for(var i = 0; i <= sqrt; i++) {//计算值 c - i * idouble k = Math.Sqrt(c - i * i);//判定是否相待,这是常用的判定开根号与目标值是否相等的写法if((int)k == k) return true;}return false;}private static bool CheckSumOfSquareNumbers2(int c) {//双指针法var sqrt = (int)Math.Sqrt(c);//存放计算 平方的和 的值var sum = 0;//前后指针var i = 0;var j = sqrt;//指针碰撞时为止while(i <= sqrt) {sum = i * i + j * j;if(sum < c) {i++;} else if(sum > c) {j--;} else {return true;}}return false;}}
以上给出2种算法实现,以下是这个案例的输出结果:
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3885 访问。
False
True
分析:
显而易见,以上2种算法的时间复杂度均为: 。
C#LeetCode刷题之#633-平方数之和( Sum of Square Numbers)相关推荐
- 633.平方数之和(Sum of Square Numbers)
题目描述 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c. 示例1: 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5 示例2: 输 ...
- LeetCode刷题笔记- 15.三数之和
LeetCode刷题笔记- 15.三数之和 C语言 题目 注意点 C语言 /*** Return an array of arrays of size *returnSize.* The sizes ...
- 【leetcode刷题】21.三数之和——Java版
⭐欢迎订阅<leetcode>专栏,每日一题,每天进步⭐ 一题二写,三数之和,题解四瞅五瞄六瞧,水平还七上八下九流,十分辣鸡. --leetcode此题热评 前言 哈喽,大家好,我是一条. ...
- leetcode刷题:2.两数之和
本篇博客介绍如何找到两数之和.获取相加的两个数获取最终target的方法. 先看如下图: 我们很容易想到暴力解法.即两次循环获取结果,第一次循环循环黑圈,我们先假定第一个黑圈中1,是我们要的数,然后接 ...
- LeetCode刷题笔记——001两数之和
题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使用 ...
- C#刷遍Leetcode面试题系列连载(4): No.633 - 平方数之和
点击蓝字"dotNET匠人"关注我哟 加个"星标★",每日 7:15,好文必达! 前文传送门: 上篇文章中一道数学问题 - 自除数,今天我们接着分析 LeetC ...
- 【leedcode刷题1】两数之和
[leedcode刷题 1]两数之和 大家好,小生不才,从今天开始将自己刷题的过程记录在博客中,因为能力有限,所以如果有什么错的地方希望大家积极指正,不胜感激. 题目 给定一个整数数组 nums 和一 ...
- LeetCode(C++)刷题计划:15-三数之和
15-三数之和 @Author:CSU张扬 @Email:csuzhangyang@gmail.com or csuzhangyang@qq.com Category Difficulty Pass ...
- LeetCode 633 平方数之和
题目描述 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c . 题解 和两数之和那道题目的求解方式类似,需要注意整数的溢出. 代码 class Solutio ...
最新文章
- [新手必看] 17个常见的Python运行时错误
- 跟着阿里大牛捞干货:2019这5本书带你玩转大数据
- MySQL教程(二)—— 关于在ACCESS中使用SQL语句
- STL各容器成员对比表
- activity finish后没有destroy_Activity 基础知识点
- C++ 不能在类体外指定关键字static
- edittext 点击区域外隐藏输入法
- [翻译]XNA 3.0 Game Programming Recipes之six
- 高并发之——Guava Cache
- 银行卡号自动识别,包括银行名称、英文缩写代号、LOGO
- 随机过程中均值、方差、协方差和相关函数的计算
- CFSSL 生成证书
- 数学/数论专题-学习笔记:狄利克雷卷积
- 迷失lost结局什么意思_《lost》《迷失》大结局,没看懂的进,详细讲解
- chrome用 --proxy-server 单独设置代理
- 一文让你彻底了解EMC防护器件之TVS
- 学士峡谷风景Mac壁纸分享
- 「Hortic Res」CsGPA1调控黄瓜耐寒性的分子机制
- Autodesk Revit
- python 绘制五星红旗(包含三角函数)
热门文章
- 每日一题(C语言基础篇)2
- MySQL安装错误——Access denied for user 'root'@'localhost' (using password: YES)
- C++ new一个数组时,指针移动程序崩溃问题
- Linux sed命令高级用法精讲
- 【Python - GPU】基于Python的GPU加速并行计算 -- pyCUDA
- 接口成员的特点 java 1614101629
- 吃货开发 阶段01 类的定义 方法的布局 0925
- vi撤销、恢复撤销和删除
- MNS消息服务计费处理参考
- Nexus修改admin密码及其添加用户