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

仓颉刷题录-二维数组(二)

文章目录

      • 前言
      • 题目
      • 吐槽环节

前言

经过上次的首刷,今天再来刷一道题!
这是双子专栏:Cangjie仓颉程序设计-个人总结
本专栏还在持续更新:仓颉编程cangjie刷题录

题目

题目链接
经典的dp题,解法可以去看题解,我这主要说一下写语法的经历

来自未来的体育科学家给你两个整数数组 energyDrinkA 和 energyDrinkB,数组长度都等于 n。这两个数组分别代表 A、B 两种不同能量饮料每小时所能提供的强化能量。

你需要每小时饮用一种能量饮料来 最大化 你的总强化能量。然而,如果从一种能量饮料切换到另一种,你需要等待一小时来梳理身体的能量体系(在那个小时里你将不会获得任何强化能量)。

返回在接下来的 n 小时内你能获得的 最大 总强化能量。

注意 你可以选择从饮用任意一种能量饮料开始。

import std.math.*
class Solution {func maxEnergyBoost(energyDrinkA: Array<Int64>, energyDrinkB: Array<Int64>): Int64 {var n = energyDrinkA.sizevar f = Array<Array<Int>> (n + 1) {i => [0, 0]}f[1][0] = energyDrinkA[0]f[1][1] = energyDrinkB[0]for (i in 2..f.size) {f[i][0] = energyDrinkA[i - 1] + max(f[i - 1][0], f[i-2][1])f[i][1] = energyDrinkB[i - 1] + max(f[i - 1][1], f[i - 2][0])}return max(f[n][0], f[n][1])}
}

吐槽环节

max
第一口槽送给max函数,max函数不是在默认导入的包里的

import std.core.*  // 默认自动导入

然而这个新出的语言我没搜到怎么调max。就自己先手撸了一个。但是max这么简单的函数如果不知道怎么掉包,自己写一个函数也很简单,但是我主要是想看看这个语言怎么写算法,我总不能每次都自己手撸一个max吧?
本来我以为就像c++、python这样的,直接就能用。但是忘了试试java的套路,后来去math包里一看,还真有!

import std.math.*

二维数组
咱就是说谁会用引用初始化多维数组?数组里面每个元素都是一个对象的引用,很好玩吗?一看这道题的返回格式就懵了,二维数组,好家伙,二维数组怎么建?没搜到。
所以自己仿照一维数组建了个二维数组,建起来了

var data = Array<Array<Int>>(n, item: [0, 0])

上面这句代码怎么看都没问题吧。但是当我把题写完看结果的时候,怎么回事?
改了一个元素,结果全都变了。
在这里插入图片描述
我真是服了,这初始化也是没谁了。
咱就继续换一换其他的方式试一下,哎,成了!

var data = Array<Array<Int>>(n) {_ => [0, 0]}

这样就好了
在这里插入图片描述


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

相关文章:

  • 2025春晚临时直播源接口
  • 新年祝词(原创)
  • Vmware窗口大小无法改变问题
  • python 3个线程轮流打印A、B、C
  • Unreal Engine 5 (UE5) Metahuman 的头部材质
  • 系统思考—战略共识
  • 第15届蓝桥杯省赛真题剖析-2024年8月24日Scratch中级组
  • 使用Github下载YOLO v5项目教程
  • 面试题:JVM(六)
  • TOP级AI驱动的单元测试工具推荐
  • 自由学习记录(17)
  • c 到 c++ 过渡
  • Spring源码学习(三):finishBeanFactoryInitialization
  • 亚马逊降佣刺激印度市场,中小卖家利好消息,测评助力扬帆起航
  • YOLOv11改进策略【注意力机制篇】| CVPRW-2024 分层互补注意力混合层 H-RAMi 针对低质量图像的特征提取模块
  • 【算法+C#】重写HashCode,去重相同坐标的二维点
  • 全面解析 ESPnet:Aishell 项目深入指南
  • 2025院士增选高校候选人名单公布,医工交叉领域有这些专家需要重点关注!|24-11-02
  • 2-8软件包管理
  • 7、LVM逻辑卷详解
  • tmux查看的日志范围有限
  • Django 5企业级Web应用开发实战-日志
  • DNS服务器
  • openGauss数据库-头歌实验1-3 创建和管理模式
  • C++ 实现俄罗斯方块游戏
  • DPDK event 驱动开发