【12-05】面试题

package org.alohaworld.mactest;

import java.util.Arrays;

public class BuyBlockTest {

	/**
	 * 面试题选出股票的买入和卖出时机,使盈利最大
	 * 
	 * @param args
	 *            股票数据数组
	 * @return 买入时间点和卖出时间点,买入点时的点数,卖出点时的点数
	 */
	public static int[] getInAndOutPoint(int[] args) {
		if (null == args || args.length <= 1) {
			return new int[] { 0, 0, 0, 0 };
		}
		int in = 0, out = 0, next = 0;
		for (int i = 0; i < args.length; i++) {
			if (args[i] < args[next]) {
				next = i;
			}
			if ((args[i] - args[next]) > (args[out] - args[in])) {
				in = next;
				out = i;
			} else if (args[i] > args[out]) {
				out = i;
			}
		}
		return new int[] { in + 1, out + 1, args[in], args[out] };
	}

	public static void main(String[] args) {
		int[] a = new int[] { 9, 6, 7, 6, 7, 8, 99, -1, 99 };
		int[] result = getInAndOutPoint(a);
		System.out.println(Arrays.toString(result));
	}
}

原文地址:https://www.cnblogs.com/achievec/p/6135507.html