题目地址:
https://leetcode.com/problems/arranging-coins/
给 n n n个硬币,将其一行一行排列,第 k k k行要排 k k k个硬币, k = 1 , 2 , . . . k=1,2,... k=1,2,...。问能排好多少个整行(整行意味着第 k k k行恰好排了 k k k个硬币)。
代码如下:
public class Solution {
public int arrangeCoins(int n) {
int row = 1, res = 0;
while (n >= row) {
n -= row;
res++;
row++;
}
return res;
}
}
时间复杂度 O ( n ) O(\sqrt n) O(n),空间 O ( 1 ) O(1) O(1)。