leetcode Shopee-001. Shopee Tanam(java)

怎么说呢 感谢题解大佬

 

 好好提升自己吧呜呜呜

import java.io.*;
import java.util.*;
import java.math.*;

public class Main{
    public static void main(String[] args) {
        //FastReader in = new FastReader();
        Scanner in = new Scanner(System.in);
        int T = in.nextInt();
        while(T-- > 0){
            long count = 0;
            int N = in.nextInt();
            int M = in.nextInt();
            long[][] dp = new long[N][2];
            long[][] arr = new long[N][M];

            for(int i = 0; i < N; i++){
                for(int j = 0; j < M; j++){
                    arr[i][j] = in.nextLong();
                }
            }

            for(int i = 0; i < M ; i ++){
                count += arr[0][i];
                dp[0][0] = Math.max(dp[0][0], count);
            }

            dp[0][1] = count;
            for(int i = 1 ; i < N; i ++){
                long l = 0, r = 0;
                for(int j = 0, k = M - 1; j < M; j ++, k --){
                    l += arr[i][j];
                    r += arr[i][k];
                    dp[i][0] = Math.max(dp[i][0], l);
                    dp[i][1] = Math.max(dp[i][1], r);
                }
                dp[i][0] = Math.max(dp[i][0] + dp[i - 1][0], dp[i - 1][1] + r);
                dp[i][1] = Math.max(dp[i][1] + dp[i - 1][1], dp[i - 1][0] + l);
            }
            System.out.println(Math.max(dp[N - 1][0], dp[N - 1][1]));
        }
    }

    // static class FastReader {
	// 	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	// 	StringTokenizer st = new StringTokenizer("");

	// 	String next() {
	// 		while (!st.hasMoreTokens())
	// 			try {
	// 				st = new StringTokenizer(br.readLine());
	// 			} catch (IOException e) {
	// 				e.printStackTrace();
	// 			}
	// 		return st.nextToken();
	// 	}

	// 	int nextInt() {
	// 		return Integer.parseInt(next());
	// 	}

	// 	int[] readArray(int n) {
	// 		int[] a = new int[n];
	// 		for (int i = 0; i < n; i++) a[i] = nextInt();
	// 		return a;
	// 	}

	// 	long nextLong() {
	// 		return Long.parseLong(next());
	// 	}
        
    //     double nextDouble() {
	// 		return Double.parseDouble(next());
	// 	}
    // }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值