【LeetCode 75】第十九题(724)寻找数组的中心下标

这篇具有很好参考价值的文章主要介绍了【LeetCode 75】第十九题(724)寻找数组的中心下标。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

题目:

示例:

​分析:

代码+运行结果:


题目:

【LeetCode 75】第十九题(724)寻找数组的中心下标,LeetCode75题解,leetcode,算法,数据结构,c++

示例:

分析:

给一个数组,让我们找出一个下标,在这个下标左边的元素总和等于这个下标右边的元素总和.

我们可以把整个数组的总和求出来,然后再从左往右遍历一次数组,遍历的同时将遍历过的数累加记录到一个变量中.若遍历到一个数,总和减去它等于遍历过的累加的总和的两倍,那么这个数就是数组的中间,它的下标就是我们要求的下标.

【LeetCode 75】第十九题(724)寻找数组的中心下标,LeetCode75题解,leetcode,算法,数据结构,c++

 (上图做错了,但是我懒得改了,右下角方框里应该是 (总和-nums[i])/2 == temp) ).

也可以使用前缀和的方法,一样是用一个变量来记录累加的结果,经过三次遍历,第一次遍历记录每个坐标左边累加的结果,第二次遍历记录每个坐标右边累加的结果,第三次遍历寻找到左右累加结果一致的坐标.

【LeetCode 75】第十九题(724)寻找数组的中心下标,LeetCode75题解,leetcode,算法,数据结构,c++

代码+运行结果:

class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        //统计总和
        int SUM=0,temp=0;
        for(const int &num:nums) SUM+=num;
        for(int i=0;i<nums.size();i++){
            if((SUM-nums[i])/2.0==static_cast<double>(temp)) return i;
            temp+=nums[i];
        }
        return -1;
    }
};

【LeetCode 75】第十九题(724)寻找数组的中心下标,LeetCode75题解,leetcode,算法,数据结构,c++

class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        //前缀和
        vector<pair<int,int>>cache(nums.size(),make_pair(0,0));
        int temp=0;
        for(int i=0;i<nums.size();i++){ //获取前缀和
            cache[i].first=temp;
            temp+=nums[i];
        }
        temp=0;
        for(int i=nums.size()-1;i>=0;i--){  //获取后缀和
            cache[i].second=temp;
            temp+=nums[i];
        }
        for(int i=0;i<cache.size();i++){    //若是前缀后缀一致则返回
            if(cache[i].first==cache[i].second) return i;
        }
        return -1;
    }
};

【LeetCode 75】第十九题(724)寻找数组的中心下标,LeetCode75题解,leetcode,算法,数据结构,c++文章来源地址https://www.toymoban.com/news/detail-625738.html

到了这里,关于【LeetCode 75】第十九题(724)寻找数组的中心下标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 寻找数组的中心下标-C语言/Java

    描述         数组  中心下标   是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为  0  ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标

    2024年02月13日
    浏览(48)
  • LeetCode 75| 数组/字符串

    目录 1768 交替合并字符串  1431 拥有最多糖果的孩子 605 种花问题 345 反转字符串中的元音字母 时间复杂度O(n+m) 空间复杂度O(1) 时间复杂度O(n) 空间复杂度O(1) 数组前后都加上0,全部统一起来处理。  时间复杂度O(n) 空间复杂度O(1) 注意边界问题  时间复杂度O(n) 空间复杂度O(1

    2024年02月03日
    浏览(55)
  • LeetCode 75 第十三题(1679)K和数对的最大数目

    给一个数组,两个和为K的数为一组,问能凑成几组。 既然一组是两个数,那么我们可以使用双指针分别指向数组首尾,然后再判断能否凑成和为K的组. 在使用双指针寻找之前,我们应当先将数组排序(升序降序都无所谓),我们这里采用C++sort的默认升序. 然后左右指针分别指向数

    2024年02月15日
    浏览(70)
  • 【C语言】每日一题(寻找数组的中心下标)

    寻找数组的中心下标,链接奉上 ​​​​​​​思路: 依旧是我们的老朋友,暴力循环。 1.可以利用外层for循环,循环变量为数组下标,在循环内分别求出下标左边与右边的sum 2.在边界时讨论, 当下标为左边界(nums[0])时,left sum=0;当下标为右边界(nums[numsSize-1)时,r

    2024年02月13日
    浏览(47)
  • ⭐北邮复试刷题LCR 012. 寻找数组的中心下标__前缀和思想 (力扣119经典题变种挑战)

    给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适

    2024年02月20日
    浏览(49)
  • 【Leetcode】4. 寻找两个正序数组的中位数(Hard)

    给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2 。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (m+n)) 。 示例1: 示例2: 提示: nums1.length == m nums2.length == n 0 = m = 1000 0 = n = 1000 1 = m + n = 2000

    2024年02月09日
    浏览(53)
  • LeetCode 力扣: 寻找两个正序数组的中位数 (Javascript)

    主要提供了力扣热题第四题,使用js,复杂度 O(log(m+n)) ,寻找两个正序数组的中位数。 题目要求在两个已排序数组 nums1 和 nums2 中找到它们的中位数。为了满足时间复杂度要求 O(log (m+n)) ,可以采用双指针的方法合并这两个数组,然后计算中位数。 首先,代码检查 nums1 和 n

    2024年02月04日
    浏览(53)
  • 《LeetCode 热题 HOT 100》——寻找两个正序数组的中位数

    本期给大家带来的是是《 LeetCode 热题 HOT 100 》第四题—— 寻找两个正序数组的中位数的 题目讲解 !!!() 本文目录 💥题意分析 💥解题思路: 1、直接法  (❌) 2、归并思想 (❌) ①《LeetCode》第88题——合并两个有序数组 3、二分查找(✔️) 整体思想: 题目如下

    2023年04月27日
    浏览(42)
  • LeetCode | 寻找两个正序数组的中位数 Python C语言

    Problem: 4. 寻找两个正序数组的中位数 先合并,后排序,最后找中间轴。 由解题思路可知 这是python3的代码。 python2的同上。 有时会发现C语言会比Python慢一些。 由于我爱好偷懒的习惯,经常使用 static 结果导致第一次的结果正确,后面的结果都是错误的。 其实,中位数可以用

    2024年02月22日
    浏览(53)
  • 【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值

    《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌ 更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍 感谢小伙伴 们点赞、关注! class   Solution :      def   mySqrt ( self ,  x :   int )   -   int :       

    2024年02月04日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包