1. 程式人生 > 其它 >leetcode-雙指標-633. 平方數之和

leetcode-雙指標-633. 平方數之和

我的第一直覺是hashmap,可能受兩數之和的影響

class Solution {
public:
    bool judgeSquareSum(int c) {
        unordered_map<int, int> un_map;
        double n = sqrt(c);
        
        for(int i = 0; i <= n; i++){
            //cout<<"n:"<<un_map[i*i]<<endl;
            un_map[i*i] = i;
            
if((c-i*i)==0) return true; if(un_map[c-i*i]>0) return true; } return false; } };

但是雙指標也是可以的

class Solution {
public:
    bool judgeSquareSum(int c) {
        long left = 0;
        long right = (int)sqrt(c);
        while (left <= right) {
            
long sum = left * left + right * right; if (sum == c) { return true; } else if (sum > c) { right--; } else { left++; } } return false; } };