今晚招商银行FinTech精英训练营线上竞赛
第一部分是单选题40+多选题10:java基础+数据库基础 (较简单)
第二部分是3个编程题
n个学生进行排队,第一次学生站好位置后,需要根据第二个数列位置进行左移,返回最少移动的次数;
示例:
输入:
5
1 2 3 4 5
1 2 3 4 5
输出:
0
输入:
5
5 1 3 2 4
4 5 2 3 1
输出:
2 (解释:移动4和移动2)
暂时只写出了第一道,代码如下:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=Integer.parseInt(sc.nextLine().trim());
List<Integer> lista=new ArrayList<Integer>();
List<Integer> listb=new ArrayList<Integer>();
for(int i=0;i<n;i++) {
lista.add(sc.nextInt());
}
for(int i=0;i<n;i++) {
listb.add(sc.nextInt());
}
sc.close();
System.out.println(countNum(lista,listb));
}
public static int countNum(List<Integer> a,List<Integer> b) {
int count=0;
int n=b.size();
int left=0;
int right=0;
if(n==1 || n==0) return 0;
while(right<n) {
if(a.get(left)==b.get(right)) {
left++;
right++;
}else {
count++;
right++;
}
}
return count;
}
}