头条面试题-统计有序数组里平方和的数目
Posted 爆米花好美啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了头条面试题-统计有序数组里平方和的数目相关的知识,希望对你有一定的参考价值。
#include <iostream>
using namespace std;
int get_square_n(int*a, int i, int j)
int cnt = 0;
while(i <= j)
while(i<j && (a[i]*a[i]) == (a[j]*a[j]))
i++;
// 同时操作,-2 -1 0 1 2这种情况会崩,-2和2相等,同时操作后-1和1又相等,少算一下
// j--;
if(a[i]*a[i]>a[j]*a[j])
while(i<j && a[i]*a[i]==a[i+1]*a[i+1])
i++;
i++;
else
while(i<j && a[j]*a[j]==a[j-1]*a[j-1])
j--;
j--;
cout<<i<<" "<<j<<endl;
cnt++;
return cnt;
int main()
int a[] = -3,-3,-2,-1,0,1,2,3,5,5;
cout<<get_square_n(a, 0, 9) <<endl;
int b[] = -3,-3,-2,-1,1,1,2,3,5,5;
cout<<get_square_n(b, 0, 9) <<endl;
return 0;
以上是关于头条面试题-统计有序数组里平方和的数目的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode Algorithm 1925. 统计平方和三元组的数目