724. Find Pivot Index

题目连接:

https://leetcode-cn.com/problems/find-pivot-index/

题目大意:

找一个点,左边和右边相等。

具体思路:

前缀和+后缀和,线性遍历一遍即可。一定注意存在空数组的情况。

AC代码:

 1 class Solution {
 2 public:
 3     int pivotIndex(vector<int>& nums) {
 4         int sum_pre[10000+10];
 5         int sum_suf[10000+10];
 6         memset(sum_pre,0,sizeof(sum_pre));
 7         memset(sum_suf,0,sizeof(sum_suf));
 8         int len = nums.size();
 9         int ans = -1 ;
10         if(len){
11         sum_pre[0] = nums[0] , sum_suf[len-1] = nums[len-1];
12          
13         for ( int i = 1 ; i< len ;i++ ){
14            sum_pre[i] = sum_pre[i-1] + nums[i];
15         }
16         for( int i = len-2 ;i >=0 ;i--){
17            sum_suf[i] = sum_suf[i+1] + nums[i];
18         }
19         for(int i = 0 ;i <len ;i++){
20          if( i == 0 ){
21            if(sum_suf[i+1] == 0 ){
22                ans=i;
23                break;
24            }
25          }
26         else if(i == len-1){
27         if(i - 1 >= 0 && sum_pre[i-1] == 0){
28         ans=i;
29             break;
30         }
31         }
32         else{
33             if(i + 1< len && i - 1 >= 0 && sum_pre[i-1] == sum_suf[i+1] ){
34             ans=i;
35                 break;
36             }
37         }
38         }
39         }
40         return ans;
41     }
42 };

 

posted @ 2019-07-13 20:20  Let_Life_Stop  阅读(122)  评论(0编辑  收藏  举报