Dies ist ein kleiner Code, der, wenn die Länge des Eingangsarrays eine Potenz von zwei ist, die Größe des Segmentarrays 2 * (input_array.length) -1 else 2 * (nächste Potenz von 2 nach input_array .Länge) -1.Unerwarteter Kompilierungsfehler in Java
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);
}
aber nach der Kompilierung sind die folgenden Fehler aufgetreten.
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];
Ich konnte meinen Fehler nicht finden.
Im Grunde ist das Problem hier, außer Klammern ist, dass Sie Ihr Array innerhalb der if-Anweisungen initialisiert haben, aber das in der Druckanweisung nicht deklariert –