Binary Search:441. Arranging Coins

来源:互联网 发布:闾丘露薇 知乎 编辑:程序博客网 时间:2024/05/20 17:59

这道题给了我们n个硬币,让我们按一定规律排列,第一行放1个,第二行放2个,以此类推,问我们有多少行能放满。

注意low,high相加可能大于整数范围,所以要用long

class Solution {public:    int arrangeCoins(int n) {        if (n <= 1) return n;        long low = 1, high = n;        while (low < high) {            long mid = low + (high - low) / 2;            if (mid * (mid + 1) / 2 <= n) low = mid + 1;            else high = mid;        }        return low - 1;    }};


原创粉丝点击