不兼容的类型:int[] 不能转换为 int [in __Driver__.java]

时间:2021-07-08 07:00:37

标签: java

class Solution {
public int[] removeDuplicates(int[] nums) {
    int i=0;
    int arr[]= new int[nums.length-1];
    for(int j =1; j<nums.length-1; j++){
        if(nums[i] == nums[j]){
           continue;
        }
        else{
           nums[i]=arr[i];
            
        }
        i++;

    }
    return arr;
}

}

**error : Line 7: error: incompatible types: int[] 无法转换为 int [in Driver.java] int ret = new Solution().removeDuplicates(param_1); ^ **

1 个答案:

答案 0 :(得分:0)

您的代码中有多个错误,例如 ->

  1. 您正在从 removeDuplicates() 方法返回一个整数数组,但将其分配给一个整数变量,这就是为什么您收到错误消息

    int[] 无法转换为 int

  2. 您将零分配给 nums[i]=arr[i]; nums 数组,因为 Array 是非原始类型,因此它们的默认值为零。


public static int[] removeDuplicates(int[] nums) {
      int index = 0;
      int arr[]= new int[nums.length-1];
      Arrays.sort(nums);
      for(int j =1; j<nums.length-1; j++){
          if(nums[j-1] == nums[j]){
             continue;
          } else {
             arr[index++] = nums[j-1];
          }
      }
      return Arrays.copyOfRange(arr, 0, index);
    }

//Driver method
public static void main(String[] args) {
    //You may have converted a string into integers
    int inetgerarray[] = {1,2,2,3,4,1,2,4,5,6,7,6,9,10,2,34,5,6,7,8,4,7};
    int a[] = removeDuplicates(inetgerarray);
    for(int i=0;i<a.length;i++)
    System.out.println(a[i]);
}