前缀和刷题-- LeetCode

devtools/2025/2/25 5:55:17/

文章目录

  • 寻找数组的中心下标
    • 题解
    • 代码
  • 巧克力
    • 题解
    • 代码

寻找数组的中心下标

题目
在这里插入图片描述

题解

1. 预处理前缀和和后缀和数组,注意边界问题,f(0) = 0,g(n-1) = 0
2. 然后遍历数组一遍,f[i] == g[i],i就是下标
3. 时间复杂度是:O(N)

在这里插入图片描述

在这里插入图片描述

代码

class Solution 
{
public:int pivotIndex(vector<int>& nums) {int n = nums.size();vector<int> f(n);vector<int> g(n);// 数组是0 - n-1,dp数组是1 - n-1,注意控制边界问题// 预处理前缀和数组for(int i = 1;i < n;i++) f[i] = f[i-1] + nums[i-1];// 预处理后缀和数组for(int i = n-2;i >= 0;i--) g[i] = g[i+1] + nums[i+1];for(int i = 0;i < n;i++){if(f[i] == g[i]) return i;}return -1;}
};

巧克力

题目

题解

1. 一定要开long long,被卡数据了
2. 先预处里一个前缀和和后缀和数组,定义一个left和right,去找前缀和后缀相等的数,并且要求最大值
3. 如果左边大扩大后缀和数组,如果右边大扩大前缀和数组

代码

#include <iostream>
#include<algorithm>
using namespace std;const int N = 2e5 + 10;
long long a[N+1], b[N+1];
int c[N+1];int main()
{int n;cin >> n;for (int i = 1; i <= n; i++) cin >> c[i];for (int i = 1; i <= n; i++) a[i] = a[i - 1] + c[i];for (int i = n; i >= 1; i--) b[i] = b[i + 1] + c[i];long long m = 0;int left = 0,right = n+1;while(left < right){if(a[left] == b[right]){if(a[left] > m) m = a[left];left++;right--;}else if(a[left] > b[right]) right--;else left++;}cout << m << '\n'; return 0;
}

http://www.ppmy.cn/devtools/161505.html

相关文章

从零开始玩转TensorFlow:小明的机器学习故事 5

图像识别的挑战 1 故事引入&#xff1a;小明的“图像识别”大赛 小明从学校里听说了一个有趣的比赛&#xff1a;“美食图像识别”。参赛者需要训练计算机&#xff0c;看一张食物照片&#xff08;例如披萨、苹果、汉堡等&#xff09;&#xff0c;就能猜出这是什么食物。听起来…

2007年诺基亚内部对iPhone的竞争分析报告

2007年iPhone发布后&#xff0c;诺基亚内部至少有9名员工指出其触屏界面、互联网整合能力将颠覆市场&#xff0c;并建议开发同类产品&#xff0c;但高管因当时占据全球50%市场份额而轻视威胁&#xff0c;认为苹果的高价和虚拟键盘会限制其普及。 诺基亚虽然意识到需推出触屏手机…

基于ffmpeg+openGL ES实现的视频编辑工具-添加背景音乐(十一)

在视频编辑领域,为视频添加背景音乐并实现音频的完美融合是一项关键任务。在上一篇文章中,我们大体介绍了添加背景音乐的整体逻辑,而本文将深入探讨其中音频合并所依赖的滤镜逻辑,通过对相关代码的详细解读,揭示音频合并的核心技术。 一、音频合并滤镜类的初始化 AudioA…

Python Seaborn库使用指南:从入门到精通

1. 引言 Seaborn 是基于 Matplotlib 的高级数据可视化库,专为统计图表设计。它提供了更简洁的 API 和更美观的默认样式,能够轻松生成复杂的统计图表。Seaborn 在数据分析、机器学习和科学计算领域中被广泛使用。 本文将详细介绍 Seaborn 的基本概念、常用功能以及高级用法,…

无监督机器学习算法

K-均值聚类是一种常用的无监督机器学习算法&#xff0c;用于将数据集中的样本分成 K 个不同的簇。其工作原理如下&#xff1a; 1. 随机选择 K 个数据点作为初始的簇中心。 2. 将每个数据点分配到距离最近的簇中心所属的簇。 3. 更新每个簇的中心&#xff0c;即取该簇中所有数据…

Kafka面试题----如何保证Kafka消费者在消费过程中不丢失消息

合理配置消费者参数 enable.auto.commit&#xff1a;设置为 false&#xff0c;关闭自动提交偏移量。自动提交偏移量存在一定的时间间隔&#xff0c;在这个间隔内如果消费者出现异常&#xff0c;可能会导致部分消息被重复消费或者丢失。关闭自动提交后&#xff0c;由开发者手动…

鸿蒙开发深入浅出04(首页数据渲染、搜索、Stack样式堆叠、Grid布局、shadow阴影)

鸿蒙开发深入浅出04&#xff08;首页数据渲染、搜索、Stack样式堆叠、Grid布局、shadow阴影&#xff09; 1、效果展示2、ets/pages/Home.ets3、ets/views/Home/SearchBar.ets4、ets/views/Home/NavList.ets5、ets/views/Home/TileList.ets6、ets/views/Home/PlanList.ets7、后端…

PCF8591一次读取多条通道导致测量值不准确的原因及解决方法

使用PCF8591测量通道电压的时候&#xff0c;只测量一个通道电压是正常的&#xff0c;但是要测量两个通道的电压时&#xff0c;会异常显示。 产生原因 时序精度不够 PCF8591通过选择不同的通道进行模拟信号采样。每次转换前&#xff0c;通道的选择需要一定的时间&#xff0c;…