简体   繁体   English

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

[英]incompatible types: int[] cannot be converted to int [in __Driver__.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[] cannot be converted to int [in Driver .java] int ret = new Solution().removeDuplicates(param_1); **错误:第 7 行:错误:类型不兼容:int[] 无法转换为 int [在Driver .java] int ret = new Solution().removeDuplicates(param_1); ^ ** ^ **

There are multiple mistakes in your code like ->您的代码中有多个错误,例如 ->

  1. You are returning a integer array from removeDuplicates() Method but assigning it to a Integer variable that's why you get a error saying您正在从removeDuplicates()方法返回一个整数数组,但将其分配给一个 Integer 变量,这就是为什么您收到错误消息的原因

    int[] cannot be converted to int int[] 不能转换为 int

  2. You are assigning Zero to nums[i]=arr[i];您将零分配给nums[i]=arr[i]; nums array as Array is a non-primitive type so they have a default value of zero. nums array as 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]);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM