当前位置: 首页 > 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

相关文章:

  • 图形渲染性能优化
  • 【君正T31开发记录】8.了解rtsp协议及设计模式
  • 【机器学习】—PCA(主成分分析)
  • 【2024最新】基于Springboot+Vue的智慧食堂系统Lw+PPT
  • leetcode:129. 求根节点到叶节点数字之和
  • c#:winform引入bartender
  • 网络、子网
  • 实验室信息管理系统源码,医院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)