[Golang] LeetCode - 검지 Offer - 면접 문제 60 - n 주사위 포인트
n 개의 주사 위 를 바닥 에 던 지고 모든 주사 위 는 위 를 향 한 포인트 의 합 은 s 이다.n 을 입력 하면 s 의 모든 가능 한 값 이 나타 날 확률 을 출력 합 니 다.너 는 부동 소수점 배열 로 답 을 되 돌려 야 한다. 그 중에서 i 번 째 요 소 는 n 개의 주사위 가 던 질 수 있 는 포인트 집합 에서 i 번 째 작은 확률 을 대표 한다.
예시 1: 입력: 1 출력: [0.16667, 0.16667, 0.16667, 0.16667, 0.16667, 0.16667, 0.16667, 0.16667]
예시 2: 입력: 2 출력: [0.02778, 0.05556, 0.08333, 0.11111, 0.13889, 0.16667, 0.13889, 0.11111, 0.08333, 0.05556, 0.02778]
제한:
1 <= n <= 11
출처: 스냅 백 (LeetCode) 링크:https://leetcode-cn.com/problems/nge-tou-zi-de-dian-shu-lcof
문제 풀이 의 사고 방향.
문제 풀이 방향 은 LeetCode 작성 자 huwt 에서 참조 합 니 다. 여 기 를 클릭 하여 문제 풀이 원문 을 방문 하 십시오.
점진 적 분석
1. 상태 표시
여기 포 인 트 는 n 번 째 주사위 의 포인트 가 아니 라 n 번 째 주사위 의 포 인 트 를 말 합 니 다. 다음은 같 습 니 다.
그래서 상 태 는 다음 과 같다. map [int] int 는 n 개의 주사 위 를 던 진 후 포인트 키 의 출현 횟수 value 를 나타 낸다.
2. 상태 전이 방정식 찾기
t := n
m := map[int]int{
0:1}
for t > 0 {
m1 := map[int]int{
}
for i := 1; i <= 6; i++ {
for k, v := range m {
m1[k + i] += v
}
}
m = m1
t--
}
t 는 단계, k + i 는 n 개의 주사 위 를 던 진 후의 포인트 와 i 는 n 번 째 주사 위 를 던 지면 나타 나 는 6 개의 포 인 트 를 나타 낸다.
3. 경계 처리
m1 := map[int]int{
}
for i := 1; i <= 6; i++ {
for k, v := range m {
m1[k + i] += v
}
}
m = m1
코드
– 실행 시간: 0 ms -- 메모리 소모: 2.1 MB
func twoSum(n int) []float64 {
//
t := n
// 1
m := map[int]int{
0:1}
for t > 0 {
// n
m1 := map[int]int{
}
//
for i := 1; i <= 6; i++ {
for k, v := range m {
//k + i n
// += v n-1 + n (1~6)
m1[k + i] += v
}
}
// n-1
m = m1
t--
}
//
sum := 0
for _, v := range m {
sum += v
}
//sum := math.Pow(6.0,float64(n))
//
ret := make([]float64, n * 6 - n + 1)
for k, v := range m {
// k - n
ret[k - n] = float64(v)/float64(sum)
}
return ret
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【JavaScript】 볼록함 그라함 스캔을 구현, 애니메이션화한다! ? 【canvas】볼록포를 시각화해 본다. — s-yoshiki | 스크립트 카스 (@s_yoshiki_dev) JavaScript에서 그레이엄 스캔에 의해 정렬되어 가는 애니메이션을 구현했다. 아래쪽에서 데모로 소개. 참고 Java...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.