一个序列的平衡点是这样的,它的左边的所有的元素的和应该等于右边的所有的元素的和,比如 在下面的序列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;
    }

算法——寻找序列平衡点相关推荐

  1. Python使用爬山算法寻找序列“最大值”

    爬山算法是人工智能算法的一种,特点在于局部择优,所以不一定能够得到全局最优解,尽管效率比较高.使用爬山算法寻找序列最大值的思路是:在能看得到的局部范围内寻找最大值,如果当前元素已经是最大值就结束,如果 ...

  2. Hoare选择算法 寻找第k小元素C实现 算法的“AWK脚手架和grap运行过程分析”

    现实生活中常有找"最大"."最小"及"中位数"等需求,解决这样的问题不用将整个序列排序.寻找"最大"."最小& ...

  3. 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 ...

  4. C++用Tarjan 算法寻找桥(附完整源码)

    C++用Tarjan 算法寻找桥的实现 C++用Tarjan 算法寻找桥完整源码(定义,实现,main函数测试) C++用Tarjan 算法寻找桥完整源码(定义,实现,main函数测试) #inclu ...

  5. 十一:贪心算法-寻找硬币

    问题:贪心算法-寻找硬币 题目描述 现有价值分别为:1 3 5 10的硬币若干.请用最少的硬币数量找出n(n<100000000)元钱. 输入 一个数字,表示要找出的钱的数量 输出 一个数字,表 ...

  6. 算法-寻找数组中的重复值,四种解法

    算法-寻找数组中的重复值 寻找数组中的重复值 寻找数组中的重复值 题目来源于:Leetcode-287.本题归类到简单我无法理解-要满足四个条件需要用很特定的解法,面试中要是用到的话很可能是在给自己挖 ...

  7. 数据结构课程设计——项目2:校园导游咨询(图 Dijkstra算法寻找最短路径)

    数据结构课程设计--项目2:校园导游咨询(图 Dijkstra算法寻找最短路径) 一.问题描述和项目要求 1.1 问题描述 1.2 基本要求 二.问题分析 2.1 程序功能设计分析 2.2 程序实现分 ...

  8. 基于机器学习聚类算法寻找美国职业篮球联赛NBA中的超级强队

    聚类算法 聚类算法是机器学习中经典的非监督学习算法之一,相比于分类算法,聚类不依赖预定义的样本标签,而是让算法通过对数据的学习从而找到其内部的规律,该算法对有相同特征的样本进行聚类,聚类的时候,我们并 ...

  9. 使用最长公共子序列算法进行序列比对

    介绍 在分子生物学中,DNA 和蛋白质可以表示为字母序列. DNA 序列由 A.T.G.C 组成,代表核苷碱基(nucleobases) 腺嘌呤.胸腺嘧啶.鸟嘌呤和胞嘧啶. 蛋白质由 20 个不同的字 ...

最新文章

  1. Matlab for Linux常用设置
  2. AI一分钟 | 北京发放自动驾驶首批牌照,百度获准测试;亿航美国分公司申请破产,债务高达数百万美元
  3. SecureCRT中Python脚本编写学习指南
  4. mybatis-plus 查询,删除
  5. 【Elasticsearch】Elasticsearch 悬空索引
  6. 什么叫单模光纤_什么是单模单纤/双纤光纤收发器?二者有何区别?
  7. maven项目在eclipse启动报错:java.lang.ClassNotFoundException
  8. iOS 处理后台返回的json(或NSDictionary)形式字符串
  9. linux使用中的问题 --- (Unable to establish SSL connection)
  10. 简述敏捷开发中的测试流程
  11. 自定义input单选框样式
  12. openstack虚拟机热迁移优化如何治本?
  13. 身份证复印件正确签注写法 -- 很重要!
  14. 建数据库表需要注意哪些点
  15. 三大功能护航,Amazfit跃我 PowerBuds Pro正式发售
  16. Opencv中flip函数讲解
  17. 车载诊断数据库ODX——Flash(刷写)
  18. FormMaking表单设计器的使用
  19. 超详细,Python 多线程总结的太到位了
  20. uva计算机水平,UVa的Computer Science「弗吉尼亚大学计算机科学系」

热门文章

  1. win下Python3.7+pip+Ipython安装
  2. DNS解析常见问题:如何添加AAAA记录?
  3. Matlab平滑处理记录
  4. 单片机tcp ip协议c语言,单片机TCP IP协议栈实现的原理
  5. 2021最新高端HTML前端网站模板下载
  6. 2023天津工业大学计算机考研信息汇总
  7. UE编辑器对大文件进行替换操作
  8. 计算机网络教室教师岗位责任,计算机室网络教室管理员岗位职责.docx
  9. 关于程序员如何创造财富的35条建议
  10. 安装Cloudera manager Server步骤详解