你玩一个新的集换式卡牌游戏。你和电脑各有一张卡片组。电脑打牌,然后你打牌。每张牌都有一个力量值,力量值较高的牌获胜。如果你和如果电脑有同样强的牌,电脑就赢了。你知道电脑的卡片。您的目标是计算您赢得的最大化卡的强度值的总和。为此,您将获得两个整数数组,它们分别代表您的卡片和计算机的卡片。
你会得到卡片 [5, 15, 100, 1, 5]。计算机使用相同的卡片,[5, 15, 100, 1, 5] 也是如此。当计算机放置 100 时,您放置 Your 1,因为您无法获胜。如果他打出 15,你打出 100 就赢了。如果他打出 5,那么打出你的 15。如果他打出第二个 5,那么打出你的 5 并输掉这一轮。如果他投出他的 1,你用你的第 5 个总数反击。您将获得价值 120 的获胜卡。
我的算法:当计算机从它的牌堆中放置最大的牌(在本例中为 100)时,我将最小的数字放在我的情况下 1。我会继续这样做,并且每当我赢时我都会写添加结果
有人对贪心算法有其他建议吗