题解:学而思编程 截断数组

发布时间:2026/6/10 18:53:45

题解:学而思编程 截断数组 本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏算法题解C与Python实现附上汇总贴算法竞赛备考冲刺必刷题C | 汇总【题目来源】学而思编程截断数组【题目描述】给定一个长度为n nn的数组a 1 , a 2 , . . . , a n a_1,a_2,...,a_na1​,a2​,...,an​。现在要将该数组从中间某处截断得到两个非空子数组。要求第一个子数组内各元素之和等于第二个子数组内各元素之和。请问共有多少种不同的截断方法【输入】第一行包含整数n nn。第二行包含n nn个整数a 1 , a 2 , . . . , a n a_1,a_2,...,a_na1​,a2​,...,an​。【输出】输出一个整数表示截断方法数量。【输入样例】3 1 1 1【输出样例】0【算法标签】#模拟【代码详解】#includebits/stdc.husingnamespacestd;intn,a[100005],sum[100005],ans;intmain(){cinn;// 输入数组长度for(inti1;in;i)// 输入数组元素{cina[i];sum[i]sum[i-1]a[i];// 计算前缀和}// 遍历所有分割点i检查是否可以将数组分成和相等的两部分for(inti1;in-1;i)// i从1到n-1{intsumlsum[i];// 左边部分的和a[1]到a[i]intsumrsum[n]-sum[i];// 右边部分的和a[i1]到a[n]if(sumlsumr)// 如果左右两部分和相等{ans;// 计数加1}}coutansendl;// 输出分割点数量return0;}【运行结果】3 1 1 1 0

相关新闻