This is a small code that if the length of input array is power of two then the size of segment array is 2*(input_array.length)-1 else 2*(next power of 2 after input_array.length)-1 .
public static int ByLogs(int n)
{
    double y = Math.floor(Math.log(n)/Math.log(2));
    return (int)Math.pow(2, y + 1);
}
public static void main(String [] args)
{
    int input_array[] = {-1,2,4,0,3};
    if(( input_array.length & (input_array.length - 1) == 0 ) && input_array.length > 0)
        int [] segment_array = new int[2*(input_array.length)-1];
    else
        int [] segment_array = new int[2*(ByLogs(input_array.length))-1];
    //Arrays.fill(segment_array,999);
    System.out.println(segment_array.length);
}
but after compilation the following errors have been occurred.
SegmentTree.java:17: error: '.class' expected
        int [] segment_array = new int[2*(input_array.length)-1];
               ^
SegmentTree.java:17: error: not a statement
        int [] segment_array = new int[2*(input_array.length)-1];
            ^
SegmentTree.java:17: error: illegal start of expression
        int [] segment_array = new int[2*(input_array.length)-1];
                             ^
SegmentTree.java:17: error: ';' expected
        int [] segment_array = new int[2*(input_array.length)-1];
                              ^
SegmentTree.java:17: error: ']' expected
        int [] segment_array = new int[2*(input_array.length)-1];
                                       ^
SegmentTree.java:17: error: not a statement
        int [] segment_array = new int[2*(input_array.length)-1];
                                      ^
SegmentTree.java:17: error: illegal start of expression
        int [] segment_array = new int[2*(input_array.length)-1];
                                        ^
SegmentTree.java:17: error: ';' expected
        int [] segment_array = new int[2*(input_array.length)-1];
                                         ^
SegmentTree.java:17: error: not a statement
        int [] segment_array = new int[2*(input_array.length)-1];
                                                     ^
SegmentTree.java:17: error: ';' expected
        int [] segment_array = new int[2*(input_array.length)-1];
I couldn't find out my mistake.
 
     
     
    