441-安排硬币

您想要以楼梯形状形成总共n个硬币,其中每个第k行必须具有恰好k个硬币。 给定n,找到可以形成的完整楼梯行的总数。 n是一个非负整数,适合32位有符号整数的范围。

 

解法1
class Solution {
    public int arrangeCoins(int n) {
        int sum=0;
        int temp=0;
        for(int i=1;i<=n;i++)
        {
            sum+=i;
            if(n-sum<0)
            {
                temp=i-1;
                break;
            }else if(n-sum==0){
                temp=i;
                break;
            }
            
        }
    
          return temp;
        
    }

优化后:
public class Solution {
    public int arrangeCoins(int n) {
        int i=0;
        while(n > 0){
            i+=1;
            n-=i;
        }
        
        return n==0 ? i : i-1;
        
    }
}

 

猜你喜欢

转载自www.cnblogs.com/dloading/p/10719934.html
0条评论
添加一条新回复