写点什么

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

作者:Lee Chen
  • 2023-02-23
    福建
  • 本文字数:450 字

    阅读完需:约 1 分钟

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

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


解题思路:

  1. ab一定是之间的某个值。

  2. a的初始值设为0b的初始值设为b必须为整数。

  3. ab向中间逼近,查找满足条件的值。

  4. 由于ab是可以交换的,两者相遇时,就查找了所有可能的值。

  5. 时,b--

  6. 时,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和b return false}
复制代码


发布于: 16 小时前阅读数: 3
用户头像

Lee Chen

关注

还未添加个人签名 2018-08-29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:633. 平方数之和,双指针,JavaScript,详细注释_JavaScript_Lee Chen_InfoQ写作社区