Java 我曾试图自己解决这个问题,但没有得到任何好的结果,还附加了我的代码

Java 我曾试图自己解决这个问题,但没有得到任何好的结果,还附加了我的代码,java,arrays,sorting,Java,Arrays,Sorting,在给定的整数数组中,如果有任何整数在重复,则将其替换为大于该数组中尚未插入的数字。 例1,3,4,5,3输出:1,3,4,5,6 类重复{ 公共静态void main(字符串[]args){ 扫描仪sc=新的扫描仪(System.in); System.out.println(“输入大小”); int n=sc.nextInt(); int arr[]=新的int[n]; System.out.println(“输入数组的元素”); 对于(int i=0;i这将是上述问题的解决方案 impor

在给定的整数数组中,如果有任何整数在重复,则将其替换为大于该数组中尚未插入的数字。 例1,3,4,5,3输出:1,3,4,5,6


类重复{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入大小”);
int n=sc.nextInt();
int arr[]=新的int[n];
System.out.println(“输入数组的元素”);

对于(int i=0;i这将是上述问题的解决方案

import java.util.*;
class duplicates {
  public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    System.out.println("input the size");
    int n = sc.nextInt();
    int arr[]=new int[n];
   System.out.println("enter the elements of an array");
    for (int i=0;i<n;i++)
    {
       arr[i]=sc.nextInt();
    }
    Arrays.sort(arr);
   int nw = 1;
    for(int i=0;i<n;i++){
      for(int j=i+1;j<n;j++){
        if(arr[i]==arr[j])
        {
          arr[j]=arr[n-1]+nw;
          nw++;


        }
      }
    }
   System.out.println("array is" + Arrays.toString(arr));

  }
}
import java.util.*;
类副本{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入大小”);
int n=sc.nextInt();
int arr[]=新的int[n];
System.out.println(“输入数组的元素”);

for(int i=0;i显示问题中格式正确的文本,而不是图像)。(1)排序后,重复项是彼此直接相邻的,因此嵌套的
for
s是不必要的。(2)如果出现多个重复项,它们总是替换为相同的编号
arr[n-1]+48
edited….请为该问题提供一些其他逻辑,因为如果在最后一个索引处存在相同的元素,则上述代码不起作用,例如,在n-2和n-1位置引入另一个变量,例如,
newNumber
,该变量最初应为一个(或48)大于最大数。每次您为重复的编号分配新编号时,请增加
newNumber
。耶…!!明白了…谢谢你。。。!!
import java.util.*;
class duplicates {
  public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    System.out.println("input the size");
    int n = sc.nextInt();
    int arr[]=new int[n];
   System.out.println("enter the elements of an array");
    for (int i=0;i<n;i++)
    {
       arr[i]=sc.nextInt();
    }
    Arrays.sort(arr);
   int nw = 1;
    for(int i=0;i<n;i++){
      for(int j=i+1;j<n;j++){
        if(arr[i]==arr[j])
        {
          arr[j]=arr[n-1]+nw;
          nw++;


        }
      }
    }
   System.out.println("array is" + Arrays.toString(arr));

  }
}