优化java代码

时间:2018-05-24 18:01:36

标签: java time-complexity

给定的代码提供正确的输出但超过了时间限制,我不知道如何优化它。我知道它具有O(n ^ 2)复杂度,但我无法接近优化它。即使是一些提示也会受到赞赏。

问题是Question

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

class Alpha{
    public static void main(String args[]) throws IOException
{
    int n=0,i=0,x=-1,y=-1,sum=0,m1,m2;
    BufferedReader br = new BufferedReader(new 
    InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine());
    n=Integer.parseInt(st.nextToken());
    Stack<Integer> stk=new Stack<>();
    long arr[] = new long[n];
    String str[]=br.readLine().split(" ");
    for(i=0;i<n;i++)
    {
        arr[i]=Long.parseLong(str[i]);
    }
    for(i=n-1;i>=0;i--)
    {
        x=-1;
        y=-1;
        for(int j=i-1;j>=0;j--)
        {
            if(arr[j]>arr[i])
            {
                x=j+1;
                break;
            }
        }
        stk.push(x);
        for(int j=i+1;j<n;j++)
        {
            if(arr[j]>arr[i])
            {
                y=j+1;
                break;
            }
        }
        stk.push(y);

    }
    while(!stk.isEmpty())
    {
        m1=stk.peek();
        stk.pop();
        m2=stk.peek();
        stk.pop();
        sum=m1+m2;
        System.out.print(sum+" ");
    }
}

}

0 个答案:

没有答案
相关问题