首页 > 解决方案 > 解决排序时测试用例较多时的超时错误

问题描述

在排序然后找到等于输入中提供的给定常数的总和时,大量数组元素由于超时而终止。

import java.io.*;

public class Solution {

    // Complete the maximumToys function below.
    static int maximumToys(int[] arr, int k) {
        int temp = 0;int sum =0;int counter =0;
        for(int j=0;j<arr.length;j++)
        {
            for(int i=0;i<arr.length-1-j;i++)
            {
                if(arr[i] > arr[i+1])
                {
                    temp = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1] = temp;
                }
            } 
        }    

        for(int i=0;i<arr.length;i++)
        {
           sum = sum + arr[i]; 
           if(sum >= k)
           break; 
           else
           counter++;
        }

    return counter;    
    }

    public static void main(String[] args) throws IOException {

    String line, strs[];
        int arr[];
        int len;
        int k;
        int toys;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        line = br.readLine();
        strs = line.trim().split("\\s");
        len  = Integer.parseInt(strs[0]);
        k    = Integer.parseInt(strs[1]);

        arr = new int[len];

        line = br.readLine();
        strs = line.trim().split("\\s");

        for (int i = 0; i < len; i++) {
            arr[i] = Integer.parseInt(strs[i]);
        }

        toys = maximumToys(arr, k);
        System.out.println(toys);




          }
}

预期结果-我的输出实际结果-由于超时而终止

标签: javaarrayssorting

解决方案


推荐阅读