solución algoritmo LeetCode a un problema [441- monedas dispuesto para que sea una mejora adicional]

título Descripción

solución:

Método 1: método de enumeración (no explicó)
Método 2: progresión aritmética [Método] Se apreciará que
Método 3: [dicotomía se apreciará]

código:

class Solution {
public:
    int arrangeCoins(int n) {
        /* 方法1:枚举 */
        if(n == 0)
        {
            return 0;
        }
        int res = 1;
        long long tmp = 0;
        for(int i = 2; ; i++)
        {
            tmp += i;
            if(tmp >= n)
            {
                return res;
            }
            res++;
        } 
        
        /* 方法2:等差数列公式法【待理解】
        return (int) (-1 + sqrt(1 + 8 * (long) n)) / 2;
        */
		
		/* 方法3:二分法【待理解】*/
    }
};
Ha publicado 197 artículos originales · ganado elogios 18 · vistas 20000 +

Supongo que te gusta

Origin blog.csdn.net/qq_41708792/article/details/104566610
Recomendado
Clasificación