CSP201909-1 小明种苹果

试题编号: 201909-1
试题名称: 小明种苹果
时间限制: 2.0s
内存限制: 512.0MB

 

CSP201909-1 小明种苹果_第1张图片

CSP201909-1 小明种苹果_第2张图片

 

解法1:

import java.util.Scanner;
public class Main{
    public static void main (String[] args) {
        int n,m; //分别为果树棵树和疏果轮数
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        m = in.nextInt();
        int [][]book = new int[n][m+1];
        for(int i = 0;i < book.length;i++){
            for(int j = 0;j < book[i].length;j++)
                book[i][j] = in.nextInt();
        }
        int shuguo[] = new int[n];
        for(int k = 0; k < book.length; k++){
            int sum = 0;
            for(int l = 1;l < book[k].length; l++){
                sum += book[k][l];
            }
            shuguo[k] = sum;
        }
        int sub=0;
        for(int i =0;i             sub+=shuguo[i];
        }
        int maxIdx=0;
        int max = shuguo[0];
        for(int i=1 ; i             if(shuguo[i]                 maxIdx = i;
                max = shuguo[i];
            }
        }
        maxIdx+=1;
        
        int origin=0;
        for(int i = 0;i < book.length;i++){
            origin+=book[i][0];
            
        }
        int last = origin + sub;
        //输出,T为最后一轮疏果后苹果树上剩下果子的总数;
        //      k为疏果个数最多的果树编号,其中若有相同者取编号最小的
        //      P为这棵树的疏果个数
        
        System.out.println(last + " " + maxIdx + " " + -max);
    }
}

解法2:


import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        int M = in.nextInt();
        
        int max = -1, T = 0, k = 0, P = 0;
        int[][] a = new int[1001][1001];
        for(int i = 0; i < N; i++){
            for(int j = 0; j < M+1; j++){
                a[i][j] = scanner.nextInt();
                
                T += a[i][j];
            }
        }
        
        
        for(int i = 0; i < N; i++){
            int sum = 0;
            for(int j = 1; j < M+1; j++){//从每一行的第二个开始加
                sum +=Math.abs(a[i][j]);
                if(sum > max){//如果一行的蔬果数大于最大数,把值赋给最大数
                    max = sum;
                    P = max;
                    k = i+1;//最大蔬果数的行数加一
                }
            }
        }
        
        System.out.println(T +" "+k+" "+P);
    }
}
 

你可能感兴趣的:(leetcode)