闲的没事给你写一下,复杂度n*2^10,类似状压dp, 话说这种一般数据比较小吧,直接给面试官写个dfs应该就行。 #include <bits/stdc++.h> // 相当于或起来全是1也就等于1024 - 1 int dp[1024];//dp[i] 凑出i的最小次数 int main() { int n; for (int i = 1; i <= 1023; i++) dp[i] = 100;// 初始化最大 dp[0] = 0; //啥也不选次数是0 std::vector<std::string> s = {"000", "000", "000", "123", "456", "789"}; //s = {"000", "111", "222", "345", "678", "891"}; for (auto e : s) { int ans = 0; for (int i = 0; i < 3; i++) { ans |= (1 << (e[i] - '0')); } for (int i = 0; i <= 1023; i++) { int x = i | ans; dp[x] = std::min(dp[x], dp[i] + 1); } std::cout << ans << std::endl; } std::cout << dp[1023] << std::endl; return 0; }
2 1

相关推荐

野猪不是猪🐗:😇:恭喜你以出色的表现成为xxx的一员 😨:您以进入本公司人才库 实际点开:您愿望单中的xxx正在特卖!
点赞 评论 收藏
分享
牛客48826091...:哥们胸肌挺好看
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务