ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 数组的平衡指数 > 原文: [https://www.geeksforgeeks.org/equilibrium-index-of-an-array/](https://www.geeksforgeeks.org/equilibrium-index-of-an-array/) 数组的平衡索引是一个索引,以使较低索引处的元素之和等于较高索引处的元素之和。 例如,在数组 A 中: **示例**: > **输入**:A [] = {-7、1、5、2,-4、3、0} > **输出**:3 > 3 是平衡指数, 因为: > A [0] + A [1] + A [2] = A [4] + A [5] + A [6] > > **输入**:A [] = {1、2、3} > **输出**:-1 写一个函数 *int balance(int [] arr,int n)*; 给定大小为 n 的序列 arr []的结果,返回平衡指数(如果有的话);如果不存在平衡指数,则返回-1。 **方法 1(简单但效率低下)** 使用两个循环。 外循环遍历所有元素,内循环查找外循环选取的当前索引是否为平衡索引。 该解决方案的时间复杂度为 O(n ^ 2)。 ## C++ ```cpp // C++ program to find equilibrium // index of an array #include <bits/stdc++.h> using namespace std; int equilibrium(int arr[], int n) {     int i, j;     int leftsum, rightsum;     /* Check for indexes one by one until      an equilibrium index is found */     for (i = 0; i < n; ++i)      {              /* get left sum */         leftsum = 0;          for (j = 0; j < i; j++)             leftsum += arr[j];         /* get right sum */         rightsum = 0;          for (j = i + 1; j < n; j++)             rightsum += arr[j];         /* if leftsum and rightsum           are same, then we are done */         if (leftsum == rightsum)             return i;     }     /* return -1 if no equilibrium      index is found */     return -1; } // Driver code int main() {     int arr[] = { -7, 1, 5, 2, -4, 3, 0 };     int arr_size = sizeof(arr) / sizeof(arr[0]);     cout << equilibrium(arr, arr_size);     return 0; } // This code is contributed  // by Akanksha Rai(Abby_akku) ```