頭條面試題-統計有序數組裏平方和的數目

#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++;
      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--;
    }
    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;
  return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章