gpt4 book ai didi

java - 如何找到响应中的最大值?

转载 作者:行者123 更新时间:2023-12-01 16:57:05 25 4
gpt4 key购买 nike

我有以下回复我怎样才能通过它找到最大的卡牌等级?卡牌等级是枚举目标:找到最大的牌来知道谁在游戏中获胜

[Hand(player=Player(name=Tesla, money=1300), firstCard=Card(rank=CARD_2, suit=DIAMOND), secondCard=Card(rank=CARD_5, suit=HEART)), Hand(player=Player(name=Uber, money=1500), firstCard=Card(rank=CARD_4, suit=SPADE), secondCard=Card(rank=CARD_4, suit=CLUB))]

最佳答案

您需要实现一个自定义比较方法,然后将其与分而治之算法结合起来,以找到数组中的最大值。

<小时/>

比较

public int compare(Card card1, Card card2) {
if () {
// card1 should rank at the beginning, return a negative integer
} else if () {
// card2 should rank at the beginning, return a positive integer
} else {
// card1 & card2 rank the same, return 0
}
}

findMax(分而治之)

Divide and conquer方法将通过查找两个子数组中的最大值,然后比较两者来找到最大值。

Card findMax(Card[] cards, int start, int end) {
if (start > end) return null;
else if (start == end) return cards[start];
else if (start + 1 == end) {
int c = compare(cards[start], cards[end]);
return c <= 0 ? cards[start] : cards[end];
} else {
int mid = start + (end - start) / 2;
Card m1 = findMax(cards, start, mid);
Card m2 = findMax(cards, mid + 1, end);
int c = compare(m1, m2);
return c <= 0 ? m1 : m2;
}
}

关于java - 如何找到响应中的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61573064/

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