LeetCode::2270. 分割数组的方案数

devtools/2025/1/15 21:43:21/

2270. 分割数组的方案数

思路

             前缀和

提示

给你一个下标从 0 开始长度为 n 的整数数组 nums 。
如果以下描述为真,那么 nums 在下标 i 处有一个 合法的分割 :

  • 前 i + 1 个元素的和 大于等于 剩下的 n - i - 1 个元素的和。
  • 下标 i 的右边 至少有一个 元素,也就是说下标 i 满足 0 <= i < n - 1 。

请你返回 nums 中的 合法分割 方案数。

示例 1:

输入:nums = [10,4,-8,7]
输出:2
解释:
总共有 3 种不同的方案可以将 nums 分割成两个非空的部分:
- 在下标 0 处分割 nums 。那么第一部分为 [10] ,和为 10 。第二部分为 [4,-8,7] ,和为 3 。因为 10 >= 3 ,所以 i = 0 是一个合法的分割。
- 在下标 1 处分割 nums 。那么第一部分为 [10,4] ,和为 14 。第二部分为 [-8,7] ,和为 -1 。因为 14 >= -1 ,所以 i = 1 是一个合法的分割。
- 在下标 2 处分割 nums 。那么第一部分为 [10,4,-8] ,和为 6 。第二部分为 [7] ,和为 7 。因为 6 < 7 ,所以 i = 2 不是一个合法的分割。
所以 nums 中总共合法分割方案受为 2 。

示例 2:

输入:nums = [2,3,1,0]
输出:2
解释:
总共有 2 种 nums 的合法分割:
- 在下标 1 处分割 nums 。那么第一部分为 [2,3] ,和为 5 。第二部分为 [1,0] ,和为 1 。因为 5 >= 1 ,所以 i = 1 是一个合法的分割。
- 在下标 2 处分割 nums 。那么第一部分为 [2,3,1] ,和为 6 。第二部分为 [0] ,和为 0 。因为 6 >= 0 ,所以 i = 2 是一个合法的分割。
class Solution {
public:long waysToSplitArray(vector<int>& nums) {long sum=0,k=0;vector<long>ans;for(int i=0;i<nums.size();i++){sum+=nums[i];ans.push_back(sum);}for(int i=0;i<ans.size()-1;i++){if(ans[i]>=ans[ans.size()-1]-ans[i]){k++;}}return k;}
};


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

相关文章

Spring FactoryBean到仿照mybatis @Mapper的实现

目录 FactoryBean原理FactoryBean例子org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean mybatis mapper bean的手动实现思考复习下Jdbc传统sql查询做法Mapper接口实现思路复习批量注册beanDefinition: ConfigurationClassPostProcessor自定义实现Mapp…

29、Spark写数据到Hudi时,同步hive表的一些坑

1.hudi的同步hive表没有comment 原以为hudi同步的hive表是根据数据写入的dataframe的schema创建的。就和spark write hive时类似&#xff0c;查看源码后发现不是。 1.1 hudi同步hive的模式 HMS , JDBC , HIVESQL。我这儿常用的是HMS和JDBC 各个同步模式对应的执行器&#x…

深入Android架构(从线程到AIDL)_27 Messager框架与IMessager接口03

目录 3、 双向沟通的Messenger框架 基本設計原則 4、 IMessenger接口 使用AIDL 3、 双向沟通的Messenger框架 这个Messenger框架是对Binder框架加以扩充而来的。 在双向沟通上&#xff0c;也继承了Binder框架机制。Binder框架双向沟通的应用情境是&#xff1a;当myActivit…

求矩阵不靠边元素之和(PTA)C语言

求矩阵的所有不靠边元素之和&#xff0c;矩阵行的值m从键盘读入(2<m<10)&#xff0c;调用自定义函数Input实现矩阵元素从键盘输入&#xff0c;调用Sum函数实现求和。(只考虑float型&#xff0c;且不需考虑求和的结果可能超出float型能表示的范围)。 函数接口定义&#x…

R语言的数据库编程

R语言的数据库编程 引言 在当今大数据时代&#xff0c;数据分析已成为推动各行业发展的重要力量。R语言&#xff0c;作为一种专为统计分析和数据挖掘而设计的编程语言&#xff0c;逐渐成为数据科学家和分析师的首选工具。然而&#xff0c;仅仅使用R语言进行数据分析往往无法满…

将node节点加入k8s集群

1、k8s master集群安装完成之后即可以开始将node节点加入到集群 2、首先要进行基础环境的配置&#xff0c;包括关闭防火墙、关闭selinux&#xff0c;关闭swap分区&#xff0c;这都是基础操作&#xff0c;不在粘贴代码。 3、进行yum源的配置&#xff0c;这里最简单方法是把mas…

Python 扫描枪读取发票数据导入Excel

财务需要一个扫描枪扫描发票文件&#xff0c;并将主要信息录入Excel 的功能。 文件中sheet表的列名称&#xff0c;依次为&#xff1a;发票编号、发票编码、日期、金额、工号、扫描日期。 扫描的时候&#xff0c;Excel 文件需要关闭&#xff0c;否则会报错。 import openpyxl …

计算机网络之---公钥基础设施(PKI)

公钥基础设施 公钥基础设施&#xff08;PKI&#xff0c;Public Key Infrastructure&#xff09; 是一种用于管理公钥加密的系统架构&#xff0c;它通过结合硬件、软件、策略和标准来确保数字通信的安全性。PKI 提供了必要的框架&#xff0c;用于管理密钥对&#xff08;包括公钥…