文章

27

粉丝

492

获赞

10

访问

257.4k

头像
暴力破解,笨笨的做法
P1703 厦门大学复试机试题
发布于2020年4月15日 00:16
阅读数 10.6k

 

import java.util.Scanner;

/**
 * 1.本人比较菜,动态规划还没了解,这题用的算是枚举吧。
 * 
 * @author 回到原点
 *
 */
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			int n = sc.nextInt();
			int[] a = new int[n + 1];
			for (int i = 1; i <= n; i++) {
				a[i] = sc.nextInt();
			}
			int max = -100000;
			int begin = 0;
			int last = 0;
			int sum = 0;
			for (int i = 1; i <= n; i++) {
				sum = a[i];
				if (sum > max) {// 先判断单个子串是否最大
					max = sum;
				}
				for (int j = i + 1; j <= n; j++) { // 两个数组成的子串,三个.....到n个组成的子串

					sum += a[j];
					if (sum > max) {// 不断比较,找到最大的子串和
						max = sum;
					}
				}
			}
			int flag = 0;
			for (int i = 1; i <= n; i++) {// 通过遍历,再找出最大值是由什么样的子串组成的,返回子串的首字符和尾字符
				if (flag == 0) {
					sum = a[i];
					if (sum == max) { // 先判断单个字符的是否是最大值
						System.out.println(max);
						System.out...
登录查看完整内容


登录后发布评论

1 条评论
admin SVIP
2020年4月15日 14:53

yes

赞(0)