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

1547. 切棍子的最小成本-cangjie

题目

1547. 切棍子的最小成本

思路

改写自官方题解官方题解

代码

import std.sort.SortExtension
class Solution {func minCost(n: Int64, cuts: Array<Int64>): Int64 {var size = cuts.sizevar myCuts = ArrayList(cuts)myCuts.sortBy(stable: true){ rht: Int64, lht: Int64 =>if (rht < lht) {return Ordering.LT}if (rht > lht) {return Ordering.GT}return Ordering.EQ}myCuts.insert(0,0)myCuts.append(n)// for(cut in myCuts){//     print("${cut} ")// }// println()var dp = Array<Array<Int64>>(size+2, item:Array<Int64>())for(i in 0..size+2){dp[i] = Array<Int64>(size+2, item:0)}for(i in size..=1 : -1){for(j in i..=size){// println("i = ${i}, j = ${j}")if(i == j){dp[i][j] = 0}else{dp[i][j] = Int64(Int32.Max)}for(k in i..=j){dp[i][j] = min(dp[i][j], dp[i][k-1]+dp[k+1][j])}dp[i][j] += myCuts[j+1] - myCuts[i-1]}}// for(i in 0..size+2){//     for(j in 0..size+2){//         print(dp[i][j])//         print(" ")//     }//     println()// }return dp[1][size]}
}

复杂度

在这里插入图片描述

遇到的坑

嵌套数组初始化问题

var dp = Array<Array<Int64>>(size+2, item:Array<Int64>())
for(i in 0..size+2){dp[i] = Array<Int64>(size+2, item:0)
}

结果

在这里插入图片描述

cangjie


http://www.mrgr.cn/news/70411.html

相关文章:

  • caozha-whois(域名Whois查询源码)
  • 网络安全web基础_HTML基础(扫盲篇)
  • idea的mapper.xml文件里写sql语句出现Tag name expected错误提示
  • Pixel Streaming入门教程:SignallingWebServer
  • android bootchart安装使用指南
  • 【leetcode练习·二叉树】用「分解问题」思维解题 II
  • 网络、子网
  • 实验室信息管理系统源码,医院LIS系统源码,C/S结构,C#语言开发,适合上项目。
  • vxe-vxe-colgroup后端返回数据 对数据进行处理 动态合并分组表头(v-if控制表格渲染(数据请求完成后渲染))
  • ROS2在自定义服务接口中的常数调用(python)
  • c++如何绑定一个类与类内成员的关系
  • AES加密原理
  • Docker使用docker-compose一键部署nacos、Mysql、redis
  • 分段式爬虫和数据采集的有趣话题
  • c++基础30字符
  • 【前端学习笔记】JavaScript学习一【变量与数据类型】
  • 体育数据API纳米篮球数据API:网球数据接口文档API示例③
  • 多态之魂:C++中的优雅与力量
  • 位运算_常见位运算总结
  • C语言 函数
  • mysql:解决windows启动失败无报错(或长时间未响应)
  • c++11(一)
  • 怎么查域名的交易价格?
  • 教育行业该怎么使用电子合同:降本增效,引领教育新未来
  • 如何提升自媒体发稿效果,必须掌握的几个技巧
  • 机器学习—多个输出的分类(Optional)