• 2020-01-28 刷题 链表 寻找数组的中心索引


    题目链接:https://leetcode-cn.com/problems/find-pivot-index/

    题目说明:

    给你一个整数数组 nums,请编写一个能够返回数组 “中心索引” 的方法。

    数组 中心索引 是数组的一个索引,其左侧所有元素相加的和等于右侧所有元素相加的和。

    如果数组不存在中心索引,返回 -1 。如果数组有多个中心索引,应该返回最靠近左边的那一个。

    注意:中心索引可能出现在数组的两端。

     

    示例 1:

    输入:nums = [1, 7, 3, 6, 5, 6]
    输出:3
    解释:
    索引 3 (nums[3] = 6) 的左侧数之和 (1 + 7 + 3 = 11),与右侧数之和 (5 + 6 = 11) 相等。
    同时, 3 也是第一个符合要求的中心索引。

    示例 2:

    输入:nums = [1, 2, 3]
    输出:-1
    解释:
    数组中不存在满足此条件的中心索引。

    示例 3:

    输入:nums = [2, 1, -1]
    输出:0
    解释:
    索引 0 左侧不存在元素,视作和为 0 ;右侧数之和为 1 + (-1) = 0 ,二者相等。

    示例 4:

    输入:nums = [0, 0, 0, 0, 1]
    输出:4
    解释:
    索引 4 左侧数之和为 0 ;右侧不存在元素,视作和为 0 ,二者相等。

    题目思想:

    1、先遍历整个数组 计算总和total,中心索引左边的值为为sum

    2、那么 sum = total-sum-nums【i】

    题目代码:

     1 class Solution {
     2 public:
     3     int pivotIndex(vector<int>& nums) {
     4         int total = accumulate(nums.begin(), nums.end(), 0);
     5         int sum = 0;
     6         for(int i =0;  i < nums.size(); ++i){
     7             if(2*sum + nums[i]== total ){
     8                 return i;
     9                 
    10             }
    11             sum +=nums[i];
    12         }
    13         return -1;
    14     }
    15 };
  • 相关阅读:
    CocoaPods初试用(1)
    iOS界面调试利器DCIntrospect
    iOS开发中sqlite3基本应用
    禁用iOS7系统自带的pop手势
    iOS7开发~Xcode5制作framework
    完美兼容iOS7自定义的AlertView
    iOS float类型比较大小
    iOS开发应用更新时,须注意事项
    Tesseract 文字识别 运用于ios7 xcode5 任意工程
    oc学习之路----内存管理
  • 原文地址:https://www.cnblogs.com/gjianli/p/14342041.html
Copyright © 2020-2023  润新知