题目

找规律

const int MAXN = 2e5;
class Solution {
public:
    long long square[MAXN];
    int pos=0;
    int bulbSwitch(int n) {
        
        for(long long i=1;i<MAXN;i++)
        {
            if(i*i > INT_MAX)
                break;
            square[++pos] = i*i;
        }
        
        int l = 1;
        int r = pos;
        
        while(l<=r)
        {
            int mid = (l+r)/2;
            if(n>square[mid])
            {
                l = mid+1;
            }
            else if(n<square[mid])
            {
                r = mid-1;
            }
            else
            {
                r=mid;
                break;
            }
        }
        
        return r;
        
        
    }
};

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-10
  • 2022-02-02
  • 2021-10-25
  • 2022-12-23
  • 2021-12-09
  • 2022-12-23
猜你喜欢
  • 2021-05-31
  • 2021-07-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案