【LeetCode】一手顺子 Java 题解
题目描述
Alice 手中有一把牌,她想要重新排列这些牌,分成若干组,使每一组的牌数都是 groupSize ,并且由 groupSize 张连续的牌组成。
给你一个整数数组 hand 其中 hand[i] 是写在第 i 张牌,和一个整数 groupSize 。如果她可能重新排列这些牌,返回 true ;否则,返回 false 。
复制代码
思路分析
今天的算法每日一题是数字排列题目,题意清晰明了,分成若干组,使每一组的牌数都是 groupSize ,并且由 groupSize 张连续的牌组成。
根据题意,我们可以按照朴素的算法思想求解。朴素算法有很多的重复查找下一个元素是否存在的过程。我们可以使用 hashmap 存储元素和元素的出现次数,提升查询效率。具体实现如下:
通过代码
复制代码
总结
上述算法的时间复杂度是 O(n * n), 空间复杂度是 O(n)
坚持算法每日一题,加油!
版权声明: 本文为 InfoQ 作者【HQ数字卡】的原创文章。
原文链接:【http://xie.infoq.cn/article/6a050f59c0597535f0112d40f】。文章转载请联系作者。
评论