算法初级(一)

Java 14 绿色免安装版:

链接:https://pan.baidu.com/s/1cK0uaLeC137-eZdeVnXUvQ 
提取码:rkm7

 

这里推荐个JAVA14的学习网站:https://www.liaoxuefeng.com/wiki/1252599548343744/1255883772263712,安利一下,个人觉得还可以,里面还有其他教程。

 

 

今天先看个开胃小菜:

算法设计举例

问题:给定序列A1,A2,A3,A4,...,An,求A1~An,求A1~An的一个任意子序列Ai~Aj,使得Ai~Aj的和最大。例如:整数序列【-2,11,-4,13,-5,2,-5,-3,12,-9的最大子序列之和为21(A2~A9)】

 

算法一:穷举法

public class TestSeq {
	static int[] seq = new int[] { -2, 11, -4, 13, -5, 2, -5, -3, 12, -9 };

	public static int maxSub_1(int[] seq) {
		int max = 0;
		int n = seq.length;
		int sum = 0;
		for (int i = 1; i <= n; i++) {
			for (int j = 0; j < n; j++) {
				sum = 0;
				for (int k = j; k < j + i && k < n; k++) {
                    sum += seq[k];
                    if(sum > max)
                    	max = sum;
				}
			}

		}
		return max;
	}
	
	public static void main(String[] args) {
		System.out.println(maxSub_1(seq));
	}
}

  运行结果是:21

 

还有三种方法下次安利,告辞!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值