你总共有 n 枚硬币,并计划将它们按阶梯状排列。对于一个由 k 行组成的阶梯,其第 i 行必须正好有 i 枚硬币。阶梯的最后一行 可能 是不完整的。
给你一个数字 n ,计算并返回可形成 完整阶梯行 的总行数。
应该首先判断数据源是否是有序的,先二分。
var rs = ArrangeCoins(1804289383); static int ArrangeCoins(int n) { if(n <= 0) return 0; // 二分 long l = 1,r = n,mid = 0,rst = 0; while(l <= r) { mid = l + (r-l)/2; Console.WriteLine((1 + mid)*mid/2); if((1 + mid)*mid/2 <= n) { // 取小于的 rst = mid; l = mid + 1; }else { r = mid - 1; } } return (int)rst; }
标签:硬币,int,441,阶梯,力扣,ArrangeCoins From: https://www.cnblogs.com/Insist-Y/p/17280396.html