头条面试题-统计有序数组里平方和的数目

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;


以上是关于头条面试题-统计有序数组里平方和的数目的主要内容,如果未能解决你的问题,请参考以下文章

Java面试推荐「京东,头条面试必考程序题」

LeetCode Algorithm 1925. 统计平方和三元组的数目

统计字符串里每个词语的数目

LeetCode 2049. 统计最高分的节点数目

LeetCode 2044. 统计按位或能得到最大值的子集数目

2179. 统计数组中好三元组数目(BIT)