一个面试题_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 一个面试题

一个面试题

 2017/10/27 0:55:43  quainter  程序员俱乐部  我要评论(0)
  • 摘要:去一家公司面试,面试我的前辈给出的一个算法题题目是这样的:有一个数组,其中的元素有负数正数和0,在其中截取连续的片段形成子数组,求子数组元素之和最大的子数组。当时只想到了穷举法,前辈给指点了一种方法,当时手写了个大概,回来之后敲出来了今天收到了offer,顺便把代码记录下来packageorg.quainter.AlgorithmTest;publicclassArraySplitTest{publicstaticvoidmain(String[]args){intarr[]={-20,26
  • 标签:面试 一个 面试题

去一家公司面试,面试我的前辈给出的一个算法

题目是这样的:

? ? 有一个数组,其中的元素有负数正数和0,在其中截取连续的片段形成子数组,求子数组元素之和最大的子数组。

?

当时只想到了穷举法,前辈给指点了一种方法,当时手写了个大概,回来之后敲出来了

今天收到了offer,顺便把代码记录下来

class="java">package org.quainter.AlgorithmTest;

public class ArraySplitTest {
	public static void main(String[] args) {
		
		int arr[] = {-20, 26, 5, 0, 54, 2, 566, -32, -4, 0, 546, -12, 13};
		
		int sum = 0;
		int start = 0;
		int end = 0;
	
		for(int i=0; i<arr.length; i++) {
			int temp_sum = 0;
			for(int j=i; j<arr.length; j++) {
				
				temp_sum += arr[j];
				if(temp_sum > sum) {
					sum = temp_sum;
					start = i;
					end = j;
				}
			}
		}
		System.out.println("start-->下标:"+ start +"\nend-->下标:"+ end);
	}
}

?

结果是:

start-->下标:1
end-->下标:12

?

上一篇: 盖茨基金会:小儿麻痹症今年有望彻底终结 下一篇: 没有下一篇了!
发表评论
用户名: 匿名