当前位置: 首页 > news >正文

浙江省电子商务网站建设宁波网站制作优化服务

浙江省电子商务网站建设,宁波网站制作优化服务,聊城高端网站设计建设,完全菜鸟七天学会建网站从第一个例子可以知道,贪心是不对的,因此考虑动态规划。最简单是递归考虑,f(i)表示cost为i对应的最大数字,因此不难写出以下递归代码 class Solution:def largestNumber(self, cost: List[int], target: int) -> s…

从第一个例子可以知道,贪心是不对的,因此考虑动态规划。最简单是递归考虑,f(i)表示cost为i对应的最大数字,因此不难写出以下递归代码

class Solution:def largestNumber(self, cost: List[int], target: int) -> str:@lru_cache(None)def maxNum(i):if i == 0 :return 0if i < 0 :return -1res = -1for j, x in enumerate(cost):tmp = maxNum(i - x)res = max(res, maxNum(i - x) * 10 + j + 1)return resres = maxNum(target)return "0" if res == -1 else str(res)

以上代码充分利用了Python的特性,由于这里数字会暴INT,用字符串表示,先把返回值变为字符串

class Solution:def largestNumber(self, cost: List[int], target: int) -> str:@lru_cache(None)def maxNum(i):if i == 0 :return ""if i < 0 :return "0"res = "0"for j, x in enumerate(cost):cur = maxNum(i - x)if cur != "0" and len(cur) + 1 >= len(res):res =  str(j + 1) + curreturn resreturn maxNum(target)

这里由于我们从1到9顺序枚举字符串,因此我们实际上只用看字符符串的长度,不需要实际去比较整个字符串。

将递归改成循环

class Solution {
public:string largestNumber(vector<int>& cost, int target) {vector<string> f(target + 1, "0");f[0] = "";for(int i = 1; i <= target; i++) {for(int j = 1; j <= 9; j++) {if (i >= cost[j - 1] && f[i - cost[j - 1]] != "0" && f[i - cost[j - 1]].size() + 1 >= f[i].size()) {f[i] = to_string(j) + f[i - cost[j - 1]];}}}return f[target];}
};

进一步优化的方法,我们不需要把答案完整的记录下来,只需要记录第一个数字和长度,然后再扫一遍求出方案

class Solution {
public:string largestNumber(vector<int>& cost, int target) {vector<pair<int, int>> f(target + 1, {-1, -1});f[0] = {0, 0};for(int i = 1; i <= target; i++) {for(int j = 1; j <= 9; j++) {int t = i - cost[j - 1];if(t < 0 || f[t].second == -1 || f[t].second + 1 < f[i].second) {continue;}f[i] = {j, f[t].second + 1};}}if (f[target].second == -1) {return "0";}string res;while (target != 0) {res.push_back(f[target].first + '0');target -= cost[f[target].first - 1];}return res;}
};

 

 

 

 

http://www.lbrq.cn/news/2794969.html

相关文章:

  • 网站建设启示厦门seo新站策划
  • 中企动力网站后台 好用吗百度快速排名软件下载
  • 做网站付多少定金优化seo厂家
  • 工作是套模板做网站北京seo加盟
  • 怎么做自动提卡网站常德政府网站市民留言
  • 做网站维护价格今日足球比赛分析推荐
  • 渭南市建网站产品线下推广方式都有哪些
  • 大余网站帮我搜一下长沙做网络销售
  • 做网站需要看那几点排名优化公司口碑哪家好
  • 网站备案未注销 影响网站如何优化推广
  • wordpress h5制作插件武汉整站优化
  • 用照片做的ppt模板下载网站淘数据
  • 重庆网站推广机构衡水seo营销
  • 电商网站设计规划书seo网站排名优化教程
  • 安徽建网站公司怎样优化关键词到首页
  • 网站怎么做隐藏内容谷歌优化seo
  • wordpress 用户权限分配seo网络营销课程
  • 潍坊哪家做网站做的最好竞价托管推广
  • 上传设计作品的网站郑州网站优化推广
  • 专业网站建设服务报价百度站长工具验证
  • 垦利网页定制seo网站推广计划
  • 青岛 网站维护关键字
  • 怎么做网站内部搜索功能软文广告示范
  • wordpress下拉南宁网站运营优化平台
  • 织梦可以做婚纱影楼网站吗免费seo
  • 网站定制型和营销型广点通和腾讯朋友圈广告区别
  • asp网站qq登录太原seo外包平台
  • 建设购物网站论文网站alexa排名查询
  • 营业推广谷歌seo外链
  • 刚创业 建网站中国新闻今日头条
  • Design Compiler:逻辑库名与逻辑库文件名及其指定方式
  • (一)关于步进电机的FOC控制
  • 在 React 中,​父子组件之间的通信(传参和传方法)
  • Web网站的运行原理1
  • 2025 | 腾讯混元RLVMR颠覆强化学习:可验证推理奖励引爆AI智能体新范式!
  • plantsimulation知识点25.8.19 工件不在RGV中心怎么办?