[LeetCode 간단한 문제] 99. - 동전 배열.

1507 단어 LeetCode간단히Easy

설명:


오늘은 99번째 문제입니다.너는 모두 n개의 동전을 가지고 있다. 너는 그것들을 계단 모양으로 배치해야 한다. k줄에 꼭 k개의 동전이 있어야 한다. k줄로 돌아가라.아래의 모든 코드는 건물주 검증을 거쳐LetCode에서 성공적으로 실행될 수 있고 코드도 다른 사람을 참고할 수 있다. 문장 마지막에 참고한 블로그 링크를 첨부할 것이다. 만약에 블로거의 관련 권익을 침해하면 저에게 연락하여 삭제해 주십시오.
(수동 비심)

본문


제목: 총 n개의 동전이 있습니다. 계단 모양으로 만들어야 합니다. k줄에 꼭 k개의 동전이 있어야 합니다.하나의 숫자 n을 정하여 완전한 계단행을 형성할 수 있는 총 줄 수를 찾아라.n은 마이너스 정수가 아닌 32비트의 기호 정형이 있는 범위 내이다.
예1:
n = 5

          :
¤
¤ ¤
¤ ¤

        ,    2.

예2:
n = 8

          :
¤
¤ ¤
¤ ¤ ¤
¤ ¤

        ,    3.

해법구근 공식에 근거하여 풀면 됩니다. 코드는 다음과 같습니다.
실행 시간: 40ms, Arranging Coins의 Python 제출에서 96.13%의 사용자를 처치
class Solution(object):
    def arrangeCoins(self, n):
        """
        :type n: int
        :rtype: int
        """
        import math
        return int((-1+math.sqrt(1+8*n))/2)

해법아래의 이런 해법은 LeetCode의 효율이 비교적 앞서는 방법이지만 나는 무슨 논리인지 이해하지 못했다...
실행 시간: 40ms, Arranging Coins의 Python 제출에서 96.13%의 사용자를 처치
class Solution(object):
    def arrangeCoins(self, n):
        """
        :type n: int
        :rtype: int
        """
        if n == 0 :
            return 0
        k = int((2*n)**0.5)

        if k+k**2 <= 2*n:
            return k
        if k+k**2 > 2*n:
            return k-1

엔딩


해법 1: 오리지널

좋은 웹페이지 즐겨찾기