441. Arranging Coins

You have a total of n coins that you want to form in a staircase shape, where every k-th row must have exactly k coins.

Given n, find the total number of full staircase rows that can be formed.

n is a non-negative integer and fits within the range of a 32-bit signed integer.

Example 1:

n = 5

The coins can form the following rows:
¤
¤ ¤
¤ ¤

Because the 3rd row is incomplete, we return 2.

 

Example 2:

n = 8

The coins can form the following rows:
¤
¤ ¤
¤ ¤ ¤
¤ ¤

Because the 4th row is incomplete, we return 3.

法1:直接对于每一行有一个暂时的硬币数和剩下的硬币数,当剩下的硬币数不足以继续填满这一行的暂时硬币数就结束
class Solution {
public:
    int arrangeCoins(int n) {
       int cur =1, rem=n-1;
        while (rem>=cur+1)
        {
            cur++;
            rem-=cur;
        }
        return n==0? 0:cur;
    }
};

(这段代码不是自己写的,我觉得写得真好。思路十分清晰)

 

posted @ 2018-06-04 21:30  小飞侠war  阅读(99)  评论(0编辑  收藏  举报