当前位置: 首页 > news >正文

LeetCode题解:633. 平方数之和,双指针,JavaScript,详细注释

原题链接:
https://leetcode.cn/problems/sum-of-square-numbers/

解题思路:

  1. ab一定是000c\sqrt cc之间的某个值。
  2. a的初始值设为0b的初始值设为c\sqrt ccb必须为整数。
  3. ab向中间逼近,查找满足条件的值。
  4. 由于ab是可以交换的,两者相遇时,就查找了所有可能的值。
  5. a2+b2>ca^2+b^2>ca2+b2>c时,b--
  6. a2+b2<ca^2+b^2<ca2+b2<c时,a++
/*** @param {number} c* @return {boolean}*/
var judgeSquareSum = function (c) {let a = 0 // a从最小值开始查找let b = Math.floor(Math.sqrt(c)) // b从最大值开始查找,需要保证初始值是整数// a和b可交换,因此只要搜索到两者相遇即可while (a <= b) {// 计算当前的a^2 + b^2值let curr = a ** 2 + b ** 2// 如果curr等于c,表示找到相应整数if (curr === c) {return true}// 如果curr大于c,减小b,向目标值逼近else if (curr > c) {b--}// 如果curr小于c,增大a,向目标值逼近else {a++}}// 如果退出循环,表示未找到a和breturn false
}
http://www.lryc.cn/news/17659.html

相关文章:

  • Keil编译头文件iec_std_functions.h错误解决
  • 2022 赣育杯 CTF --- Crypto Lost_N wp
  • 【趋势分析方法三】MATLAB代码实现TFPW-MK检验
  • 一文学会 Spring 整合 MyBatis
  • ElasticSearch - 文档 | 索引文档 | 检索文档 | 创建索引并指明映射
  • SQL中的DML、DDL、DCL分别是什么意思
  • kubeasz部署k8s高可用集群
  • 2022年工程机械出口专题研究【重工】
  • [python入门(51)] - python时间日期格式time和datetime
  • 别担心ChatGPT距离替代程序猿还有距离
  • SpringBoot项目打包部署到阿里云服务器、通过Maven插件制作Docker镜像、部署项目容器、配置生产环境
  • OpenGov的首个方案已上线Moonriver
  • (三十一)大白话MySQL如果事务执行到一半要回滚怎么办?再探undo log回滚日志原理
  • 机器学习-基于KNN及其改进的汉字图像识别系统
  • Zebec生态持续深度布局,ZBC通证月内翻倍或只是开始
  • Leetcode.1238 循环码排列
  • spring boot的包扫描范围
  • 常青科技冲刺A股上市:研发费用率较低,关联方曾拆出资金达1亿元
  • 【Linux】工具(1)——yum
  • MySQL - 排序与分页
  • 自动化测试框架对比
  • 第7章 Memcached replace 命令教程
  • 我记不住的那些maven内容
  • 【Java】Spring更简单的读取和存储
  • Kafka 命令行操作
  • KUKA机器人_基础编程中的变量和协定
  • 代码名命规范浅析
  • 数据结构第15周 :( 求第k大的数 + 查找3个数组的最小共同元素 + 查找一个循环顺序数组的最小元素 + Crazy Search)
  • 【数据结构】Map 和 Set
  • IPVlan 详解