숫자 n이 있다고 가정하면 파스칼 삼각형의 n번째(0인덱스) 행을 찾아야 합니다. Pascal의 삼각형은 다음과 같이 생성될 수 있다는 것을 알고 있습니다. -
- 상단 행에는 1의 배열이 있습니다.
- 위, 왼쪽에 위, 오른쪽에 숫자를 더하면 다음 행이 됩니다.
따라서 몇 개의 행은 다음과 같습니다 -
따라서 입력이 4와 같으면 출력은 [1, 4, 6, 4, 1]
이 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- n이 0과 같으면
- 반환 [1]
- n이 1과 같으면
- [1,1] 반환
- ls:=[1,1]이 있는 목록, temp:=[1,1]이 있는 목록
- 2 ~ n+1 범위의 i에 대해
- ls:=임시
- temp:=하나의 값이 있는 목록 =1
- 0에서 ls -1 크기의 범위에 있는 i에 대해
- ls[i],ls[i+1]을 병합하고 temp의 끝에 삽입
- temp의 끝에 1 삽입
- 반환 온도
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution: def solve(self, n): if n==0: return [1] if n==1: return [1,1] ls=[1,1] temp=[1,1] for i in range(2,n+1): ls=temp temp=[1] for i in range(len(ls)-1): temp.append(ls[i]+ls[i+1]) temp.append(1) return temp ob = Solution() print(ob.solve(4))
입력
4
출력
[1, 4, 6, 4, 1]