算法——寻找序列平衡点
一个序列的平衡点是这样的,它的左边的所有的元素的和应该等于右边的所有的元素的和,比如 在下面的序列A:A[0]=-7 A[1]=1 A[2]=5 A[3]=2 A[4]=-4 A[5]=3 A[6]=0 3是一个平衡点因为: A[0]+A[1]+A[2]=A[4]+A[5]+A[6] 6也是一个平衡点因为: A[0]+A[1]+A[2]+A[3]+A[4]+A[5]=0 (零个元素的和是零) 索引7不是平衡点,因为它不是序列A的有效索引,如果你仍然不是很清楚,那么这里给出了明确的定义: 当且仅当0 ≤ k ≤ n 并且
Σ m=0
k −1 A[m]=Σ m=k+1
n A[m] 时,
整数k是序列A[0],A[1],...,A[n] 的平衡点,这里 我们假定零个元素的和为零。 请写一个函数,返回给定序列的平衡点(任意一个)如果没有平衡点则返回-1,假设这个序列可达到非常大。要用static public int equi(int a[])
public static int equi(int[] a){
int leftSum=0,rightSum=0; //leftSum平衡点左边元素之和,rightSum平衡点右边元素之和.
int equiPoint=0; //假设平衡点为0
for(int i=1;i<a.length;i++){ //先把右和求出来
rightSum+=a[i];
}
if(leftSum==rightSum) return equiPoint;
for(equiPoint=1;equiPoint<a.length;equiPoint++){
leftSum=leftSum+a[equiPoint-1]; //新的左和为原来左和加平衡点左边的元素.
rightSum=rightSum-a[equiPoint]; //新的右和为原来的右和减支平衡点的元素
if(leftSum==rightSum){
break;
}
}
if(equiPoint<a.length) return equiPoint;
return -1;
}
算法——寻找序列平衡点相关推荐
- Python使用爬山算法寻找序列“最大值”
爬山算法是人工智能算法的一种,特点在于局部择优,所以不一定能够得到全局最优解,尽管效率比较高.使用爬山算法寻找序列最大值的思路是:在能看得到的局部范围内寻找最大值,如果当前元素已经是最大值就结束,如果 ...
- Hoare选择算法 寻找第k小元素C实现 算法的“AWK脚手架和grap运行过程分析”
现实生活中常有找"最大"."最小"及"中位数"等需求,解决这样的问题不用将整个序列排序.寻找"最大"."最小& ...
- Algs4-1.5.1使用quick-find算法处理序列
1.5.1使用quick-find算法处理序列9-0 3-4 5-8 7-2 2-1 5-7 0-3 4-2.对于输入的每一对整数,给出id[]数组的内容和访问数组的次数. 答: public cla ...
- C++用Tarjan 算法寻找桥(附完整源码)
C++用Tarjan 算法寻找桥的实现 C++用Tarjan 算法寻找桥完整源码(定义,实现,main函数测试) C++用Tarjan 算法寻找桥完整源码(定义,实现,main函数测试) #inclu ...
- 十一:贪心算法-寻找硬币
问题:贪心算法-寻找硬币 题目描述 现有价值分别为:1 3 5 10的硬币若干.请用最少的硬币数量找出n(n<100000000)元钱. 输入 一个数字,表示要找出的钱的数量 输出 一个数字,表 ...
- 算法-寻找数组中的重复值,四种解法
算法-寻找数组中的重复值 寻找数组中的重复值 寻找数组中的重复值 题目来源于:Leetcode-287.本题归类到简单我无法理解-要满足四个条件需要用很特定的解法,面试中要是用到的话很可能是在给自己挖 ...
- 数据结构课程设计——项目2:校园导游咨询(图 Dijkstra算法寻找最短路径)
数据结构课程设计--项目2:校园导游咨询(图 Dijkstra算法寻找最短路径) 一.问题描述和项目要求 1.1 问题描述 1.2 基本要求 二.问题分析 2.1 程序功能设计分析 2.2 程序实现分 ...
- 基于机器学习聚类算法寻找美国职业篮球联赛NBA中的超级强队
聚类算法 聚类算法是机器学习中经典的非监督学习算法之一,相比于分类算法,聚类不依赖预定义的样本标签,而是让算法通过对数据的学习从而找到其内部的规律,该算法对有相同特征的样本进行聚类,聚类的时候,我们并 ...
- 使用最长公共子序列算法进行序列比对
介绍 在分子生物学中,DNA 和蛋白质可以表示为字母序列. DNA 序列由 A.T.G.C 组成,代表核苷碱基(nucleobases) 腺嘌呤.胸腺嘧啶.鸟嘌呤和胞嘧啶. 蛋白质由 20 个不同的字 ...
最新文章
- Matlab for Linux常用设置
- AI一分钟 | 北京发放自动驾驶首批牌照,百度获准测试;亿航美国分公司申请破产,债务高达数百万美元
- SecureCRT中Python脚本编写学习指南
- mybatis-plus 查询,删除
- 【Elasticsearch】Elasticsearch 悬空索引
- 什么叫单模光纤_什么是单模单纤/双纤光纤收发器?二者有何区别?
- maven项目在eclipse启动报错:java.lang.ClassNotFoundException
- iOS 处理后台返回的json(或NSDictionary)形式字符串
- linux使用中的问题 --- (Unable to establish SSL connection)
- 简述敏捷开发中的测试流程
- 自定义input单选框样式
- openstack虚拟机热迁移优化如何治本?
- 身份证复印件正确签注写法 -- 很重要!
- 建数据库表需要注意哪些点
- 三大功能护航,Amazfit跃我 PowerBuds Pro正式发售
- Opencv中flip函数讲解
- 车载诊断数据库ODX——Flash(刷写)
- FormMaking表单设计器的使用
- 超详细,Python 多线程总结的太到位了
- uva计算机水平,UVa的Computer Science「弗吉尼亚大学计算机科学系」