题目要求:
思路:
整体思路:通过建立两个数组,数组1存放n个整数,数组2存放n个整数第几次出现。
1.新建数组1,存入n个整数
2.新建数组2,并初始化数组第一个元素为1,(因为数组第一个元素肯定是第一次出现,而第二个元素可能与第一个元素相同或者不同。所以只需要设置第一个元素初始值为1)
2.1嵌套循环中,第一个for循环控制数组2的循环次数,第二个for循环控制遍历的次数,(从第二个元素开始,每一个元素都需要遍历前面的元素)比如第二个元素需要向前遍历看看第二个元素是第几次出现,之后元素也一样
2.2如果前面的元素与当前的元素都不同,则标记为1,如果相同的话,则继续记录下来,一直遍历到当前元素,然后输入
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//存入数组1中
int arr1[] = new int[n];
for(int i =0;i<arr1.length;i++){
arr1[i] = sc.nextInt();
}
int arr2[]= new int[n];
arr2[0] =1; //第一个数组元素
for(int i =1;i<n;i++){
int temp=1; //第二个for循环结束后初始temp的值为1
for(int j=i-1;j>=0;j--){ //从第二个数组元素开始遍历之前的数组元素是否有相同
if(arr1[j] != arr1[i]){
arr2[i] =temp;
}else{
temp++;
arr2[i] =temp;
}
}
}
//输出
for(int i =0;i<arr2.length;i++){
System.out.print(arr2[i]+" ");
}
}
}
如有不对,请多批评。。。转载需声明。。。后续继续更新用java实现ccf例题