小S的倒排索引 | 豆包MarsCode AI刷题

1 阅读1分钟
import java.util.*;

public class Main {
    public static List<Integer> solution(List<Integer> a, List<Integer> b) {
        // 使用 HashSet 存储 a 中的元素
        Set<Integer> setA = new HashSet<>(a);
        // 使用 ArrayList 存储交集结果
        List<Integer> result = new ArrayList<>();
        
        // 遍历 b,检查元素是否在 setA 中
        for (int num : b) {
            if (setA.contains(num)) {
                result.add(num);
            }
        }
        
        // 对结果列表进行排序,按从大到小的顺序
        result.sort((x, y) -> y - x);
        
        return result;
    }

    public static void main(String[] args) {
        System.out.println(solution(Arrays.asList(1, 2, 3, 7), Arrays.asList(2, 5, 7)).equals(Arrays.asList(7, 2)));
        System.out.println(solution(Arrays.asList(1, 4, 8, 10), Arrays.asList(2, 4, 8, 10)).equals(Arrays.asList(10, 8, 4)));
        System.out.println(solution(Arrays.asList(3, 5, 9), Arrays.asList(1, 4, 6)).equals(Collections.emptyList()));
        System.out.println(solution(Arrays.asList(1, 2, 3), Arrays.asList(1, 2, 3)).equals(Arrays.asList(3, 2, 1)));
    }
}