LeetCode 면접 문제 16.10. 생존 인원수 동태 계획
글 목록
N 명의 출생 연도 와 사망 연 도 를 정 하고, i 개인의 출생 연 도 는 birth [i] 이 며, 사망 연 도 는 death [i] 로 생존 인원 이 가장 많은 연 도 를 계산 하 는 방법 을 실현 한다.
모든 사람 이 1900 년 에서 2000 년 사이 에 태 어 났 다 고 가정 할 수 있다.만약 한 사람 이 어느 해 의 임의의 시기 에 생존 상태 에 있다 면, 그들 은 그 해 의 통계 에 포함 되 어야 한다.예 를 들 어 1908 년 에 태 어 나 1909 년 에 죽은 사람 은 1908 년 과 1909 년 의 계수 에 들 어가 야 한다.
여러 해 동안 생존 인원 이 같 고 모두 최대 치 라면 그 중 가장 작은 해 를 수출 한다.
예시
:
birth = {1900, 1901, 1950}
death = {1948, 1951, 2000}
: 1901
힌트
0 < birth.length == death.length <= 10000
birth[i] <= death[i]
해답
class Solution {
public int maxAliveYear(int[] birth, int[] death) {
int[] years = new int[102];
//
for(int i = 0; i < birth.length; i++){
years[birth[i]-1900]++;
}
for(int i = 0; i < death.length; i++){
years[death[i]-1900+1]--;
}
int max = 0;
//
for(int i = 1; i < 102; i++){
years[i] += years[i-1];
if(years[max] < years[i]) max = i;
}
return max + 1900;
}
}
사고방식: 동적 기획
1. 데이터 에 따라 연간 출생 과 사망 자 를 계산한다.
그해 에 1 명 이 태 어 났 고 그해 의 출생 자 수 는 + 1 이다.그해 사망 자 는 1 명, 이듬해 사망 자 는 + 1 명 이 었 다.
그해 의 자연 증가 수 를 설정 하 다 = 그해 출생 자 수 - 전년 도 사망자 수 그해 의 자연 증가 수 = 그해 출생 자 수 - 전년 도 사망자 수 그해 의 자연 증가 수 = 그해 출생 자 수 - 전년 도 사망자 수
2. 매년 출생 과 사망자 수 에 따라 연간 생존 인원 을 계산한다.
그해 생존 인원수 = 전년 의 생존 인원수 + 그해 의 자연 증가 수 그해 생존 인원수 = 전년 의 생존 인원수 + 그해 의 자연 증가 수 그해 생존 인원수 = 전년 의 생존 인원수 + 그해 의 자연 증가 수
첫해 (1900 년) 의 생존 인원수 즉 첫해 의 출생 자 수 는 이듬해 부터 공식 에 따라 매년 생존 인원 을 얻 을 수 있 고 max 변수 로 생존 인원수 의 최대 치 를 얻 으 면 된다.
후기
좀 어 지 럽 게 썼 고, 동시에 여러분 의 잘못 을 지적 하 는 것 도 환영 합 니 다.
출처: 스냅 백 (LeetCode) 링크:https://leetcode-cn.com/problems/living-people-lcci 저작권 은 인터넷 에 귀속 된다.상업 전 재 는 정부 에 연락 하여 권한 을 부여 해 주 십시오. 비 상업 전 재 는 출처 를 밝 혀 주 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.