441. Arranging Coins

来源:互联网 发布:网络应用层协议有哪些 编辑:程序博客网 时间:2024/06/03 20:35
class Solution(object):
    def arrangeCoins(self, n):
        """
        :type n: int
        :rtype: int
        """
        i = 1
        while n:
            n -= i
            i +=1
            if n == i:
                return i
            elif n < i:
                return i-1

        return 0


另一种等差数列化简:

http://blog.csdn.net/cloudox_/article/details/53005388


(1+x)*x/2 <= n 
x + x*x <= 2*n 
4*x*x + 4*x <= 8*n 
(2*x + 1)*(2*x + 1) - 1 <= 8*n 
x <= (sqrt(8*n + 1) - 1) / 2

原创粉丝点击