`
jerryqiu007
  • 浏览: 232367 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

整型数组平衡点算法

阅读更多
/**
 * 整形数组平衡点问题:平衡点指左边的整数和等于右边的整数和,
 * 求出平衡点位置,要求输入的数组可能是GB级
 * 
 * 要求找出整型数组的一个平衡点(如果要找出所有平衡点的话,按此方法需要把每一个平衡点都存起来)
 */ 
public class  Test   {

	public int findBalanceableNod(int[] a) {
		
		if (a == null )  {
			return -1 ;
		}
		
        long sum = 0l;
        long subSum = 0l;
        
        for ( int i = 0 ; i < a.length; i ++ ) {
        	sum += a[i];
        }
        
        for (int i = 0; i < a.length; i ++ ) {
        	if (subSum == sum - subSum - a[i]) {
        		System.out.println(a[i]);
        		return a[i];
            
        	} else {
        		subSum += a[i];
        	} 
        }
        
        return -1 ;
	} 
   
    public static void main(String[] args) {
            	int[] a = { - 7 , 1, 5, 2, -5, 1} ;
    	Test t = new Test();
    	//System.out.println(t.findBalanceableNod(a));
    	t.findBalanceableNod(a);
	} 
} 

 

分享到:
评论
3 楼 jerryqiu007 2010-03-17  
mefly 写道
这个问题你考虑了吗

你可以测试一下哈
2 楼 mefly 2010-02-10  
这个问题你考虑了吗
1 楼 mefly 2010-02-10  
要求输入的数组可能是GB级

相关推荐

    合肥工业大学数据结构

    5. **图论算法**:包括最短路径算法(如Dijkstra算法、Floyd算法)、最小生成树算法(如Prim算法、Kruskal算法)等,这些都是解决图问题的有效工具。 6. **动态规划**:这是一种优化问题求解方法,通过构建状态转移...

    有两个数组a,b,大小都为n,数组元素的值任意,无序

    考虑到我们的目标是让两个数组的总和之差尽可能小,最直观的想法就是尝试平衡两个数组的元素分布。如果 `sum(a) &gt; sum(b)`,那么应该选择较大的 `a[i]` 与较小的 `b[j]` 进行交换,反之亦然。 #### 2. 算法步骤 - *...

    信息学奥赛一本通提高篇 第1部分 基础算法(提高篇) 数据点

    1. 数据类型:了解和掌握不同的数据类型,如整型、浮点型、字符串、数组、链表等,是处理数据点的基础。每种数据类型都有其特定的存储方式和操作规则,熟悉这些能帮助我们更好地设计算法。 2. 排序算法:快速排序、...

    算法C语言实现(第1~4部分)

    根据给定文件的信息,《算法:C语言实现(第1~4...以上就是本书涵盖的主要知识点,通过这些内容的学习,读者不仅能够掌握C语言的基础语法,还能够深入了解算法和数据结构的设计与实现,这对于提升编程能力具有重要意义。

    [网盘]算法笔记-上机训练实战指南-胡凡 完整版.2018_03_19

    根据提供的文件信息,本文将对《算法笔记-上机训练实战指南》这本书进行详细的知识点梳理,主要包括但不限于:算法基础知识、数据结构应用、经典算法详解、编程实践技巧等内容。 ### 一、算法基础知识 #### 1.1 ...

    C语言数据结构与算法WORD版.rar

    8. **数据结构**:数据结构是组织和管理数据的方式,如线性表(数组、链表)、栈、队列、树(二叉树、平衡树)、图等。理解不同数据结构的特点和操作,有助于设计高效的算法。 9. **算法**:算法是解决问题的具体...

    Java数据结构和算法

    例如,声明一个整型数组`int[] nums;`,如果要初始化可以使用`nums = new int[] {1, 2, 3, 4, 5};`或者使用更简便的`int[] nums = {1, 2, 3, 4, 5};`。 简单排序算法包括冒泡排序、选择排序和插入排序。这三种排序...

    LeetCode初级算法笔记整理

    在Java编程语言中,处理LeetCode的算法问题时,我们需要掌握以下几个核心知识点: 1. **基础数据类型与操作**:了解整型、浮点型、字符型、布尔型等基本数据类型,以及它们之间的转换和运算规则。 2. **控制流程**...

    算法笔记.胡凡

    2. 数据类型:整型、浮点型、字符型、数组、结构体等数据类型的定义与使用。 3. 控制结构:顺序结构、分支结构(if-else)、循环结构(for、while、do-while)以及它们的嵌套使用。 4. 函数:函数的定义、函数的声明...

    C#快速排序算法

    在C#中实现快速排序,你可以创建一个方法,接受一个整型数组和两个下标作为参数,表示待排序的子数组。下面是一个简化的示例代码: ```csharp public void QuickSort(int[] array, int left, int right) { if ...

    java数据结构和算法

    // 创建一个长度为5的整型数组 arr[0] = 1; // 给数组的第一个元素赋值为1 ``` ##### 2. 链表(Linked List) 链表是由一系列节点组成的数据结构,每个节点包含数据和指向下一个节点的指针。链表的优点是可以动态地...

    算法与数据结构

    在排序算法章节的后半部分,维尔特探讨了排序序列的处理,包括直接合并、自然合并、分发初始运行以及平衡多路合并等。这些排序方法专注于如何高效处理大量数据的排序问题。 ### 递归算法 递归算法是一种通过函数...

    ACM程序设计常用算法与数据结构参考

    ### ACM程序设计常用算法与数据结构知识点概览 #### 排序算法 在计算机科学领域,排序算法是解决数据组织的重要工具。对于ACM程序设计竞赛而言,掌握各种高效的排序算法至关重要。 - **插入排序**:插入排序是一种...

    c语言基础-c语言编程基础之二维数组操作-两地调度.zip

    例如,如果我们想声明一个3行4列的整型数组,可以写成`int array[3][4];`。这里的行数和列数可以代表“两地调度”中的不同站点或时间段。 二维数组的初始化也是重要的知识点。你可以直接在声明时初始化,如`int ...

    算法:C语言实现.zip

    学习C语言实现算法,首先需要理解C语言的基本语法和数据类型,如整型、浮点型、字符型以及指针。 二、排序算法 1. 冒泡排序:这是一种简单的排序方法,通过反复遍历数组,比较并交换相邻元素来完成排序。 2. 选择...

    lintcode算法分析和解答

    整型数组 - **移除元素(Remove Element)** - 给定一个数组和一个值,在原地移除指定值的元素。 - **零和子数组(Zero Sum Subarray)** - 寻找数组中的连续子数组,其和为零。 - **子数组和等于K(Subarray Sum K)*...

Global site tag (gtag.js) - Google Analytics