数组和字符串

发布时间 2023-04-28 22:01:44作者: 好想学会写代码

数组操作

读取数组中的元素,是通过访问索引的方式来读取的,一般从0位置开始。

对于数组,计算机在内存中为其申请一段 连续 的空间,且会记下索引为0处的内存地址。主要的四种操作为:读取,查找,插入和删除元素。

1.寻找数组的中心索引:

给定整数数组nums,计算数组的中心下标(其左侧所有元素相加之和等于右侧元素相加之和,注意这里不包括索引处元素本身)。如果存在多个中心下标,返回最左边的一个,如果不存在中心下标,则返回-1。

示例:

 

输入:nums = [1, 7, 3, 6, 5, 6]
输出:3
解释:
中心下标是 3 。
左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,
右侧数之和 sum = nums[4] + nums[5] = 5 + 6 = 11.
输入:nums = [1, 2, 3]
输出:-1
输入:nums = [2, 1, -1]
输出:0

思路:先求出数组总和,然后从左侧元素开始求部分和,通过减法实现与剩下元素之和比较。
class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        int i,sum=0,left_sum=0;
        for(i=0;i<nums.size();i++) sum+=nums[i];
        for(i=0;i<nums.size();i++){
            if(left_sum==sum-left_sum-nums[i]) return i;
            left_sum+=nums[i];
        }
        return -1;
    }
};