279. 完全平方数

好久没有刷题了,还是要坚持和继续的,刷题是我快乐!

这个的思路就是一层一层的进行,在第一层用所有小于n的平方数去被减于n,将剩下的数字分别再进行平方数的相减,直到有一个为0,即可以得到最小个数。

这里用一个队列来装要处理的数字和得到的差值,首先把一层放进去,在分别poll处理处理,再放下一次差的结果,不断循环。

对于记录已经计算过的数字,可以用hashSet 或者一个boolean的数组,我都写了,发现数组的方式更快。

学习的点:

queue有两个添加元素的方法——add和offer,区别是当超出队列界限的时候,add()方法是抛出异常让你处理,而offer()方法是直接返回false。

代码:

https://github.com/hanleirx/LeetCode/blob/master/279.%20%E5%AE%8C%E5%85%A8%E5%B9%B3%E6%96%B9%E6%95%B0

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容