gpt4 book ai didi

java - "Match the Shoes"挑战我的错误在哪里

转载 作者:行者123 更新时间:2023-12-04 04:19:26 27 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




我正在尝试解决这个挑战:

项目的流行顺序定义如下:

  • 如果订购次数多于 2 次,则商品 A 比商品 B 更受欢迎
    B项。
  • 如果商品 A 和商品 B 的订购次数相同,则
    ID 较小的项目(见下文)更受欢迎。

  • 选择一双合适的鞋子来购买一件衣服并不是一个显而易见的决定。给定之前与某件商品一起购买的鞋子的购买频率,您能否通过向客户展示 K 款最流行的鞋子(按受欢迎程度排序)来帮助客户?

    输入格式

    第一行 i 包含三个以空格分隔的整数,分别描述以下值:
  • K - 您必须推荐的最受欢迎的鞋子数量。
  • M - 不同鞋号的数量。
  • N- 订单数量。

  • N 个后续行中的每一行 i (其中 0<=i

    约束
  • 1<=K<=100
  • K<=M<=50000
  • 1<=N<=1000000
  • 0<=Ai<=M

  • 输出格式

    按照受欢迎程度从高到低的顺序对您的 K 鞋建议列表进行排序,然后将优先列表中的每个元素打印在新的一行上。

    样本输入
    3 4 8
    2
    1
    2
    0
    3
    3
    1
    2

    样本输出
    2
    1
    3

    解释
  • ID=2的鞋子出现了3次。因为这是最
    热门商品,我们先打印出来。
  • ID=1和ID=3的鞋子各出现2次。因为这两款鞋
    出现次数相同,按ID升序排列
    编号并打印在第二行和第三行。
  • Shoe ID=0 不在此列表中,因为它的人气排名较低
    比 K=3。

  • link但是我的解决方案并没有通过所有情况,有人可以指出我在哪里做错了。我正在通过案例 6、9、15、16、18、19、20 和 21。但其余的都失败了。如果您有任何 build 性的批评,我的解决方案也可能不是最佳的,欢迎您听到。
    谢谢!
        import java.util.*;
    public class Solution {
    static int numberOfInputElements = 3;

    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int inputArray[] = new int[numberOfInputElements];
    for (int i = 0; i < inputArray.length; i++) {
    inputArray[i] = scanner.nextInt();
    }
    int K = inputArray[0];
    int M = inputArray[1];
    int N = inputArray[2];

    // Constrains check
    if ((K >= 1 && K <= 100) && (K <= M && M <= 50_000) && (1 <= N && N <= 1_000_000)) {
    int orders[] = new int[N];
    for (int i = 0; i < orders.length; i++) {
    orders[i] = scanner.nextInt();
    }
    scanner.close();
    Map<Integer, Integer> hm = new HashMap();
    for (int x : orders) {
    if (!hm.containsKey(x)) {
    if ((hm.keySet().size() >= 0) && (hm.keySet().size() <= M)) {
    hm.put(x, 1);
    } else
    return;
    } else {
    hm.put(x, hm.get(x) + 1);
    }
    }
    ArrayList result = new ArrayList();
    result = sortByValue(hm);
    for (int i=0; i<K;i++){
    System.out.println(result.get(i));
    }
    } else {
    throw new IllegalArgumentException("The arguments does not look right!");
    }
    }

    private static ArrayList sortByValue(Map<Integer, Integer> unsortMap) {

    // 1. Convert Map to List of Map
    List<Map.Entry<Integer, Integer>> list =
    new LinkedList<Map.Entry<Integer, Integer>>(unsortMap.entrySet());

    // 2. Sort list with Collections.sort(), provide a custom Comparator
    // Try switch the o1 o2 position for a different order
    Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
    public int compare(Map.Entry<Integer, Integer> o2, Map.Entry<Integer, Integer> o1) {
    return (o1.getValue()).compareTo(o2.getValue());
    }
    });

    // 3. Loop the sorted list and put it into a new insertion order Map LinkedHashMap
    ArrayList arrayList = new ArrayList();
    for (Map.Entry<Integer, Integer> entry : list) {
    arrayList.add(entry.getKey());
    }
    return arrayList;
    }
    }

    最佳答案

    没有发现任何逻辑问题,所以提交你的代码。它工作正常。

    Works Fine

    关于java - "Match the Shoes"挑战我的错误在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59765263/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com