633. 平方數之和 ( 列舉 + 二分查詢 )
LeetCode: 633. 平方數之和
二分查詢
通過迴圈 i 列舉 i * i 自身, 作為構成 c 的其中一個平方數,然後通過二分查詢找出剩下的另一個平方數。
如果找到另一個平方數,直接返回 true, 反之,繼續往後迭代。
二分查詢 AC Code
class Solution {
public boolean judgeSquareSum(int c) {
// 通過迴圈 i * i 自身 列舉其中一個平方數
// 剩下一個平方數通過二分查詢來確定有無
for(long i = 0; i * i <= c; i++){
int b = c - (int)(i * i);
if(bs(0, b, b)) {
// 找到了
return true;
}
}
return false;
}
public boolean bs(long l, long r, int a){
long left = l, right = r;
while(left <= right) {
long mid = left + (right - left) / 2;
if(mid * mid < a) left = mid + 1;
else if(mid * mid > a) right = mid - 1;
else return true;
}
return false;
}
}
相關文章
- 633. 平方數之和
- 雜湊查詢 兩數之和
- Sum of Square Numbers 平方數之和
- 【Java】陣列二分查詢元素Java陣列
- Java列舉-通過值查詢對應的列舉Java
- 查詢——二分查詢
- 陣列的查詢(搜尋):線性查詢和二分法查詢陣列
- 查詢固定條數的某個值之和
- 二分查詢(一)——純粹的二分查詢
- 二分查詢
- php陣列中二分查詢是什麼PHP陣列
- 查詢演算法__二分查詢演算法
- 演算法訓練營第一天| 704 二分查詢 27 移除元素 977 有序陣列的平方演算法陣列
- 二分查詢法
- PHP二分查詢PHP
- leetcode——二分查詢LeetCode
- leetcode -- 二分查詢LeetCode
- 查詢演算法之二分查詢演算法
- 二分查詢 | 二分查詢的一種推薦寫法
- 1-陣列-11-二分查詢-LeetCode704陣列LeetCode
- labuladong_二分查詢
- 二分查詢(c++)C++
- 704.二分查詢
- 詳解二分查詢
- Leetcode 704 二分查詢LeetCode
- 每日leetcode——二分查詢LeetCode
- python二分查詢模板Python
- 二分查詢【折半查詢】演算法 PHP 版演算法PHP
- 程式碼隨想錄Day1 | LeetCode 704. 二分查詢、LeetCode 27. 移除元素、LeetCode 977. 有序陣列的平方LeetCode陣列
- 【LeetCode-陣列】查詢大多數元素LeetCode陣列
- PHP 實現二分查詢PHP
- 圖解--二分查詢樹圖解
- 二分查詢成長錄
- 二分查詢的定義
- 二分查詢-不套用模板
- 演算法->二分查詢演算法
- 【演算法】二分查詢演算法
- 力扣之二分查詢力扣