LC 818. Race Car
class Solution { public: int racecar(int target) { vector<int> dp(target+1); for(int i=1;i<=target;i++){ dp[i]=INT_MAX; int j=1; int m=1; // 先向前走m步 for(;j<i;j=(1<<++m)-1){ int k=0; int n=0; for(;k<j;k=(1<<++n)-1){ dp[i]=min(dp[i],m+1+n+1+dp[i-(j-k)]); //再向后走n步 } } if(j==i) dp[i]=min(dp[i],m); else { for(;j<2*i;j=(1<<++m)-1){ dp[i]=min(dp[i],m+1+dp[j-i]); //过target后往后走 } } } return dp[target]; } };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步