360,那个游乐场的哪里有问题
发布于 2017-09-20 21:09 2499 次浏览 0 赞 来自 笔试面试  

哪里有问题?????本地全通过,提交0%???????????????????
import java.io.*;
import java.util.*;
public class Main
{
 
    public static void main(String[] args) {
            int length = 2; 
            int i=0,j=0,t=0,x=0,sum=0;
             int[] a = new int[2];
            Scanner scanner = new Scanner(System.in);
            Scanner scanner1 = new Scanner(System.in);
            for( i=0;i<length;i++){
                   a[i]=scanner1.nextInt();   
               }
            length=a[0];
            x=a[1];
            int[] b = new int[length];
           for( i=0;i<length;i++){
               b[i]=scanner.nextInt();
                
           }
           for ( i = b.length - 1; i > 0; --i)  //此地方本来用的是Array.sort(b),我以为是不支持,没想到换成手动的还是不行,哪里有问题?
            {
                for ( j = 0; j < i; ++j)
                {
                    if (b[j + 1] < b[j])
                    {
                        t = b[j];
                        b[j] = b[j + 1];
                        b[j + 1] = t;
                    }
                }
            }
            
           for( i=0;i<length;i++){
            if(x-b[i]>0){
                x=x-b[i];
                sum=sum+b[i];
            }
            else{
                sum=sum+b[length-1];
                break;
            }
                 
           }
           System.out.println(sum);
            
    }
 
}


6 条回复

不知道是不是我的理解有问题,我当时觉得那个例子就不对。。

5

1 2 3 4 4

5

1 2

1 3

2 4

2 5

4 4

为啥输出是

0

1

1

2

0

2 4和2 5的个数不应该一样多么

2017-09-20 21:13
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] arr = new int[n];
		for(int i=0;i<n;i++){
			arr[i] = sc.nextInt();
		}
		int m = sc.nextInt();
		int[][] arr2 = new int[m][2];
		for(int i=0;i<m;i++){
			arr2[i][0] = sc.nextInt();
			arr2[i][1] = sc.nextInt();
		}
		
		print(n,arr,m,arr2);
		
		
	}
	
	public static void print(int n,int[] arr,int m,int[][] arr2){
		
		for(int i=0;i<m;i++){
			
			printOne(n,arr,m,arr2[i][0],arr2[i][1]);
			
		}
		
	}
	
	public static void printOne(int n,int[] arr,int m,int arr2_1,int arr2_2){
		int count = 0;
		if(n<3){
			System.out.println(0);
			
		}else{
			if(arr2_2-arr2_1<2){
				System.out.println(0);
				
			}else{
				for(int i=arr2_1-1;i<arr2_2-2;i++){//此处减2,不是减3
					if(arr[i]<=arr[i+1] && arr[i+1]<=arr[i+2] ){
						count++;
						continue;
					}else{
						continue;
					}
					
				}
				System.out.println(count);

			}
			
		}
		
	}

}


2017-09-20 21:14
acmcoderJOJfay3j 回复 coder_kkgQenAi

2 4只有2 3 4这一个,2 5有2 3 4和3 4 4这两个

2017-09-20 21:16
coder_kkgQenAi 回复 acmcoderJOJfay3j

不是这三个数需要在2 4之间的意思么,原来3 4 4不算呀

2017-09-20 21:19
acmcoderJOJfay3j 回复 coder_kkgQenAi

没听懂你说什么 第2到第4个加起来就3个数,顶多就是一个,第2到第5一共有4个数,可以有两种组合,恰好组合2 3 4和组合3 4 4都是符合要求,不就是2种了

2017-09-20 21:26
coder_lOb1oXtN 回复 coder_EUBQMVF2

请问你这个是AC了吗?

2017-09-21 11:16
添加回复
回到顶部