动态规划 O(n)时间复杂度的找零钱问题
Posted Wally的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划 O(n)时间复杂度的找零钱问题相关的知识,希望对你有一定的参考价值。
1 //O(n)时间复杂度的找零钱问题 2 #include <iostream> 3 #include <bits/stdc++.h> 4 using namespace std; 5 int a[6]; 6 int main() 7 { 8 9 int n; 10 while(~scanf("%d",&n)) 11 { 12 memset(a,0,sizeof(a)); 13 for(int i=1;i<=n;i++) 14 { 15 if(i>=1) 16 { 17 a[i%6]=a[((i-1)%6+6)%6]+1; 18 } 19 if(i>=3) 20 { 21 a[i%6]=min(a[i%6],a[((i-3)%6+6)%6]+1); 22 } 23 if(i>=5) 24 { 25 a[i%6]=min(a[i%6],a[((i-5)%6+6)%6]+1); 26 } 27 } 28 printf("%d\n",a[n%6]); 29 } 30 return 0; 31 }
以上是关于动态规划 O(n)时间复杂度的找零钱问题的主要内容,如果未能解决你的问题,请参考以下文章