簡體   English   中英

無法在 Intellij IDEA 中運行 Java 代碼:編譯時出錯

[英]Unable to run the Java code in Intellij IDEA : error during Compilation

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;
        }
    }
}

編輯:嘗試使用 static void main too.. 仍然拋出錯誤 對於上面的代碼下面的錯誤被拋出,我該怎么辦?

錯誤:主方法必須在 class BinarySearch.SortedArray 中返回 void 類型的值,請將主方法定義為:public static void main(String[] args)

進程以退出代碼 1 結束

我看到的一些問題

  1. 就像評論中提到的那樣,主要應該是public static void main
  2. 主要需要返回語句到 go

下面的代碼應該可以工作

 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;
    }

我認為您使用 class 結構是有原因的,所以除了解決您的問題/疑慮之外,我不會做任何更改:

無法運行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 {

通過這些最小的更改,您的代碼應該可以運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM