无法在Intellij IDEA中运行Java代码:编译期间出错


public class RotationsNumbers {
public int main(String[] args) {
Solution ans= new Solution();
int[] arr= {5, 1,2, 3, 4};
System.out.println(ans.findKRotation(arr , 5));
return -1;
}
class Solution {
int findKRotation(int arr[], int n) {
// code here
int ans= findPivot(arr, 0 , n-1);
if( ans ==-1) return 0;
return ans+1;

}
int findPivot( int arr[], int start, int end){
int mid ;
while(start< end){
mid= start+ (end- start)/2;
if (mid < end && arr[mid]> arr[mid+1]){
return mid;
}
if ( mid > start && arr[mid ]< arr[mid-1]){
return mid-1;
}
if ( arr[ mid ] < arr[0]){
end= mid-1;
}else{
start= mid+1;
}
}
return -1;
}
}
}

编辑:也尝试使用静态void main。。静态抛出错误对于上面的代码,下面的错误正在抛出,我该怎么办?

错误:Main方法必须在类BinarySearch.SortedArray中返回void类型的值,请将主要方法定义为:public static void main(String[]args(

进程结束,退出代码为1

我看到的一些问题

  1. 就像评论中提到的那样,main应该是public static void main
  2. return语句在main中需要转到

下面的代码应该可以

public static void main(String[] args) {
int[] arr= {5, 1,2, 3, 4};
System.out.println(findKRotation(arr , 5));
}
static int findKRotation(int arr[], int n) {
// code here
int ans= findPivot(arr, 0 , n-1);
if( ans ==-1) return 0;
return ans+1;

}
static int findPivot( int arr[], int start, int end){
int mid ;
while(start< end){
mid= start+ (end- start)/2;
if (mid < end && arr[mid]> arr[mid+1]){
return mid;
}
if ( mid > start && arr[mid ]< arr[mid-1]){
return mid-1;
}
if ( arr[ mid ] < arr[0]){
end= mid-1;
}else{
start= mid+1;
}
}
return -1;
}

我认为你使用所使用的类构造是有原因的,所以除了解决你的问题/担忧之外,我不会做任何更改:

无法运行Java代码

要运行代码,请进行以下更改;

您的解决方案:

public int main(String[] args) {
Solution ans= new Solution();
int[] arr= {5, 1,2, 3, 4};
System.out.println(ans.findKRotation(arr , 5));
return -1;
}

更改为:

public static void main(String[] args)
Solution ans= new Solution();
int[] arr= {5, 1,2, 3, 4};
System.out.println(ans.findKRotation(arr , 5));
}

您的解决方案:

class Solution {

更改为:

static class Solution {

通过这些最小的更改,您的代码应该可以运行。

最新更新