47:선물의 최대치(동적 기획)
생각:![여기에 그림 설명 삽입]https://img-blog.csdnimg.cn/20190420132748945.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NzZG5saWppbmdyYW4=,size_16,color_FFFFFF,t_70
public int func(int[][] gifts) {
if(gifts==null||gifts.length==0)
return 0;
//maxGift[i,j] (i,j)
int[][] maxGift=new int[gifts.length][gifts[0].length];
maxGift[0][0]=gifts[0][0];
for(int i=0;i0){
upMax=maxGift[i-1][j];
}
if(j>0){
leftMax=maxGift[i][j-1];
}
maxGift[i][j]=Math.max(leftMax,upMax)+gifts[i][j];
}
}
return maxGift[gifts.length-1][gifts[0].length-1];
}
공간 복잡성 최적화:
1차원 그룹으로만 이전 줄의 최대 선물 값을 저장하는 것이지 전체 2차원 그룹의 칸마다 최대 선물 값을 저장하는 것이 아니다
public int func2(int[][] gifts) {
if(gifts==null||gifts.length==0)
return 0;
//maxGift[j] (i-1,j)
int[] maxGift=new int[gifts[0].length];
for(int i=0;i0){
upMax=maxGift[j];
}
if(j>0){
leftMax=maxGift[j-1];
}
maxGift[j]=Math.max(leftMax,upMax)+gifts[i][j];
}
}
return maxGift[gifts[0].length-1];
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
20200326 - 검지offer 면접문제 27: 두 갈래 나무의 거울이솔 위 안에 28문제의 답안이 있는데 어떻게 꼬치는지 모르겠다.간단해....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.