LeetCode - 寻找数组的中心

先学习一下前缀和吧

LCR 012.寻找数组的中心LCR 012.

代码解析

在读题读到左侧元素之和等于右侧所有元素之和的时候,我觉得可以用前缀和,然后结合下面的示例,模拟了一下发现确实可以。

我的想法是搞两个数组,一个来存从左到右数组中的前缀和,另一个来存从右到左数组中的前缀和。然后在一个for循环中去判断两个前缀和数组的值是否相等就可以了。

学C++的小伙伴在用vector初始话的时候,要记得,从右到左的vector容量要比原数组大2。

class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        int n = nums.size();
        vector<int> lsum(n + 1, 0);
        vector<int> rsum(n + 2, 0); // 只大1会越界,画个图想一想为什么

        for (int i = 1,j = n; i <= n; i++,j--)
        {
            lsum[i] = lsum[i - 1] + nums[i - 1];
            rsum[j] = rsum[j + 1] + nums[j - 1]; // 越界与这里有关
        }

        for (int i = 1; i <= n; i++)
        {
            if (lsum[i] == rsum[i]) return i - 1;
        }
        return -1;

    }
};

我写完之后又看了一下官方的解法,发现,比我写的好多了,用的前缀和 + 简单推理。

class Solution {
public:
    int pivotIndex(vector<int> &nums) {
        int total = accumulate(nums.begin(), nums.end(), 0);
        int sum = 0;
        for (int i = 0; i < nums.size(); ++i) {
            if (2 * sum + nums[i] == total) {
                return i;
            }
            sum += nums[i];
        }
        return -1;
    }
};

作者:力扣官方题解
链接:https://leetcode.cn/problems/tvdfij/solutions/1038043/zuo-you-liang-bian-zi-shu-zu-de-he-xiang-5j4r/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/449022.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Halcon测量专栏-圆弧测量

1.前言 1.1什么是圆弧 圆上任意两点间的部分叫做圆弧。由于圆弧有正反的特性&#xff0c;即为有顺时针方向和逆时针方向&#xff0c;在确定圆弧时&#xff0c;也需要确定圆弧的方向。 1.2halcon实现方式 针对圆弧的问题。1&#xff1a;它与圆是相似的&#xff0c;都具备中心…

视频监控汇聚管理系统EasyCVR平台RTMP推流异常是什么原因?

AI视频智能分析/视频监控管理平台EasyCVR能在复杂的网络环境中&#xff08;专网、内网、局域网、广域网、公网等&#xff09;&#xff0c;支持设备通过4G、5G、WIFI、有线等方式接入&#xff0c;并将设备进行统一集中接入与视频汇聚管理&#xff0c;经平台接入的视频流能实现多…

王道机试C++第 5 章 数据结构二:队列queue和21年蓝桥杯省赛选择题Day32

目录 5.2 队列 1&#xff0e;STL-queue 课上演示&#xff1a; 基本代码展示&#xff1a; 2. 队列的应用 例:约瑟夫问题 No. 2 题目描述&#xff1a; 思路提示&#xff1a; 代码展示&#xff1a; 例&#xff1a;猫狗收容所 题目描述&#xff1a; 代码表示&#xff1…

安防视频监控汇聚平台EasyCVR使用RTMP推流出现异常的原因排查与解决

AI视频智能分析/视频监控管理平台EasyCVR能在复杂的网络环境中&#xff08;专网、内网、局域网、广域网、公网等&#xff09;&#xff0c;支持设备通过4G、5G、WIFI、有线等方式接入&#xff0c;并将设备进行统一集中接入与视频汇聚管理&#xff0c;经平台接入的视频流能实现多…

大数据开发 hadoop集群 2.hadoop框架入门

自从我学会了寻找&#xff0c;我就已经找到 ——史铁生 —— 24.3.10 内容简介 Hadoop入门&#xff1a; ①概念 ②环境准备 ③hadoop生产集群搭建 ④常见错误的解决方案 ①概念&#xff1a;1.Hadoop是什么 2.Hadoop发展历史 3.Hadoop…

【Linux】线程封装_互斥

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb;线程封装Thread.cpp &#x1f449;&am…

骨传导耳机哪个牌子好?五大热门品质机型盘点,体验超赞!

在蓝牙耳机中&#xff0c;骨传导耳机凭借不入耳佩戴更健康等优点&#xff0c;迅速成为当下的热门款式&#xff0c;但随着骨传导耳机市场的品牌日渐增多&#xff0c;以及市场上不专业的骨传导耳机泛滥成灾的问题&#xff0c;有很多消费者在选择骨传导耳机的时候&#xff0c;都出…

【算法】Hash存储——开放寻址法

模拟散列表 维护一个集合&#xff0c;支持如下几种操作&#xff1a; I x&#xff0c;插入一个整数 x&#xff1b; Q x&#xff0c;询问整数 x是否在集合中出现过&#xff1b; 现在要进行 N次操作&#xff0c;对于每个询问操作输出对应的结果。 输入格式 第一行包含整数 N&am…

代码随想录 贪心算法-中等题目-序列问题

376.摆动序列 376. 摆动序列 中等 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#xff0c; [1, 7…

spring boot 访问 static public 目录下的静态资源报404解决办法

1.前提是你没有修改spring boot 默认拦截路径&#xff0c;跟默认访问资源的目录。 在idea 设置中 把 compiler 下的 Buid project automatically 勾选上

开源的java视频处理库介绍

本文将为您详细讲解 Java 开源的视频处理库&#xff0c;以及它们的特点、区别和应用场景。Java 社区提供了多种视频处理库&#xff0c;这些库可以帮助您在 Java 应用程序中实现视频的录制、编辑、转换和播放等功能。 1. JCodec 特点 - 基于 Java 的视频编解码库。 - 支…

ChatGpt只能看,但无法发送消息的解决办法

这几天发现chatgpt没法发送消息了,我以为是网络问题,又过了几天还是不能发,我以为是梯子的问题,可给我急坏了,于是我用无痕模式发现可以访问额. 但是无痕模式毕竟不是长久之计,于是找到了一个方法 1.首先把电脑缓存全清除了 第一种方法: 快捷键是 : ctrlshiftdel (这会吧浏览…

分支需求管理方式

此文为上一篇文章的后续 我们来回顾一下&#xff0c;现在&#xff0c;你的小组负责的系统&#xff0c;有主干分支&#xff0c;每次新的需求&#xff0c;你都从主干(formal)拉取分支(dev-日期-需求名)进行修改&#xff0c;自测通过后&#xff0c;合并至测试分支(test)进行提测&a…

Python高级二

一、异常 1、定义 异常是在程序执行过程中出现的错误或意外情况。当程序遇到异常时&#xff0c;它会中断当前的执行流程&#xff0c;并尝试找到相应的异常处理机制来解决问题。 2、常见异常类型 SyntaxError&#xff1a;语法错误&#xff0c;通常是代码书写不符合Python语法规则…

VSCode单机活动栏图标无法收起

如果活动栏为展开状态&#xff0c;单击活动栏图标可以正常收起&#xff0c;但无法通过再次单击打开&#xff0c;解决方案如下&#xff1a; 设置->工作台->外观&#xff1a; Activity Bar:Icon Click Behavior: 切换为默认的toggle

C++ 作业 24/3/11

1、提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数&#xff08;要求使用C风格字符串完成&#xff09; #include <iostream>using namespace std;int main() {string str;cout << "please enter str:&…

【Flutter 面试题】如何理解Flutter中的Widget、State、Context ,他们是为了解决什么问题?

【Flutter 面试题】如何理解Flutter中的Widget、State、Context &#xff0c;他们是为了解决什么问题&#xff1f; 文章目录 写在前面解答补充说明完整代码示例运行结果如下详细说明 写在前面 &#x1f64b; 关于我 &#xff0c;小雨青年 &#x1f449; CSDN博客专家&#xff…

svg简单教程

推荐查看这个视频 一小时讲完SVG 简介 scalable 英 /ˈskeɪləbl/ 美 /ˈskeɪləbl/ adj. &#xff08;计算机&#xff09; 可扩展的&#xff1b;可改变大小的&#xff0c;可缩放的&#xff1b;可攀登的&#xff1b;可称量的&#xff1b;可去鳞的 vector 英 /ˈvektə/ 美…

CTP-API开发系列之五:SimNow环境介绍

CTP-API开发系列之五&#xff1a;SimNow环境介绍 CTP-API开发系列之五&#xff1a;SimNow环境介绍SimNow模拟测试环境第一套第二套登录关键字段可视化终端常见问题 CTP-API开发系列之五&#xff1a;SimNow环境介绍 如果你要研发一套国内期货程序化交易系统&#xff0c;从模拟测…

Valid8Proxy:一款功能强大的工作代理获取、验证和存储工具

关于Valid8Proxy Valid8Proxy是一款功能强大且用户友好的代理管理工具&#xff0c;该工具功能丰富&#xff0c;旨在帮助广大研究人员获取、验证和存储工作代理的相关信息。 无论你是需要用于网络资源爬取、网络数字匿名化还是测试网络安全的代理&#xff0c;Valid8Proxy都可以…