力扣3290.最高乘法得分
力扣3290.最高乘法得分
递归 + 记忆化搜索
-
对于b数组,从右往左考虑取不取,如果取则问题变成b[0] ~ b[i-1]间找j - 1个数
- 如果不取,则问题变成b[0] ~ b[i]间找j个数
- 即dfs(i,j) = max(dfs(i-1,j) , dfs(i-1,j-1) + a[j] * b[i])
-
边界:dfs(i,-1) = 0,dfs(-1,j>=0) = -INF
-
终点:dfs(n-1,3);
-
同时引入记忆化搜索,因为只要参数一致,每次的结果都一样,所以遍历过的就不用再遍历
- 初始化成INF即可
-
class Solution {public:long long maxScore(vector<int>& a, vector<int>& b) {int n = b.size();//用vector<long long>也可以//需要一个一个填充vector<array<long long,4>> memo(n);for(auto &row : memo)ranges::fill(row,LLONG_MIN);auto dfs = [&](auto &&dfs,int i,int j) -> long long {//j == -1if(j < 0)return 0;if(i < 0) //非法return LLONG_MIN / 2;//引用取出memo[i][j],如果没更新过,就求res的同时更新auto &res = memo[i][j];if(res == LLONG_MIN)res = max(dfs(dfs,i-1,j) , dfs(dfs,i-1,j-1) + (long long)a[j] * b[i]);return res;};return dfs(dfs,n-1,3);}};
1:1递推
-
f[i+1][j+1] 的定义和dfs(i,j)的定义一样
- 将dfs(-1,j>=0) = -INF也翻译,为f[0][j] = -INF;
-
class Solution {public:long long maxScore(vector<int>& a, vector<int>& b) {int n = b.size();vector<array<long long,5>> f(n+1);//初始化for(int j=1;j<5;j++)f[0][j] = LLONG_MIN / 2;for(int i = 0;i<n;i++)for(int j=0;j<4;j++)f[i+1][j+1] = max(f[i][j+1],f[i][j] + (long long)a[j] * b[i]);return f[n][4];}};
相关文章:
力扣3290.最高乘法得分
力扣3290.最高乘法得分 递归 记忆化搜索 对于b数组,从右往左考虑取不取,如果取则问题变成b[0] ~ b[i-1]间找j - 1个数 如果不取,则问题变成b[0] ~ b[i]间找j个数即dfs(i,j) max(dfs(i-1,j) , dfs(i-1,j-1) a[j] * b[i]) 边界:…...
Python | Leetcode Python题解之第413题等差数列划分
题目: 题解: class Solution:def numberOfArithmeticSlices(self, nums: List[int]) -> int:n len(nums)if n 1:return 0d, t nums[0] - nums[1], 0ans 0# 因为等差数列的长度至少为 3,所以可以从 i2 开始枚举for i in range(2, n):i…...
深入理解 ClickHouse 的性能调优与最佳实践
1. 介绍 ClickHouse 是一款由 Yandex 开发的开源列式数据库,专为在线分析处理(OLAP)场景设计。它以极高的查询性能著称,尤其适用于大规模数据的快速聚合和分析。自发布以来,ClickHouse 在多个行业中得到了广泛应用&am…...
Elasticsearch——介绍、安装与初步使用
目录 1.初识 Elasticsearch1.1.了解 ES1.1.1.Elasticsearch 的作用1.1.2.ELK技术栈1.1.3.Elasticsearch 和 Lucene1.1.4.为什么不是其他搜索技术?1.1.5.总结 1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引1.2.3.正向和倒排 1.3.Elasticsearch 的一些概念1.3.1.文档和字…...
FreeRTOS保姆级教程(以STM32为例)—任务创建和任务控制API说明
目录 一、任务创建: (1)TaskHandle_t 任务句柄 (2) xTaskCreate: 函数原型: 参数说明: 返回值: 示例: 注意事项: 用法示例:…...
Go语言现代web开发14 协程和管道
概述 Concurrency is a paradigm where different parts of the program can be executed in parallel without impact on the final result. Go programming supports several concurrency concepts related to concurrent execution and communication between concurrent e…...
Llama3.1的部署与使用
✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 💫 欢迎来到我的学习笔记! 什么是Llama3.1? Llama3.1 是 Meta(原 Facebook)公…...
Java/Spring项目的包开头为什么是com?
Java/Spring项目的包开头为什么是com? 下面是一个使用Maven构建的项目初始结构 src/main/java/ --> Java 源代码com.example/ --->为什么这里是com开头resources/ --> 资源文件 (配置、静态文件等)test/java/ --> 测试代码resourc…...
深度学习自编码器 - 随机编码器和解码器篇
序言 在深度学习领域,自编码器作为一种无监督学习技术,凭借其强大的特征表示能力,在数据压缩、去噪、异常检测及生成模型等多个方面展现出独特魅力。其中,随机编码器和解码器作为自编码器的一种创新形式,进一步拓宽了…...
Spring IoC DI
Spring 框架的核心是其控制反转(IoC,Inversion of Control)和依赖注入(DI,Dependency Injection)机制。这些概念是为了提高代码的模块化和灵活性,进而简化开发和测试过程。下面将详细介绍这两个…...
[数据集][目标检测]无人机飞鸟检测数据集VOC+YOLO格式6647张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6647 标注数量(xml文件个数):6647 标注数量(txt文件个数):6647 标注…...
Vue 中 watch 的使用方法及注意事项
前言 Vue 的 Watch 是一个非常有用的功能,它能够监听 Vue 实例数据的变化并执行相应的操作。本篇文章将详细介绍 Vue Watch 的使用方法和注意事项,让你能够充分利用 Watch 来解决 Vue 开发中的各种问题。 1. Watch 是什么? 1.1 Watch 的作…...
情指行一体化平台建设方案和必要性-———未来之窗行业应用跨平台架构
一、平台建设必要性 以下是情指行一体化平台搭建的一些必要性: 1. 提高响应速度 - 实现情报、指挥和行动的快速协同,大大缩短从信息获取到决策执行的时间,提高对紧急情况和突发事件的响应效率。 2. 优化资源配置 - 整合各类资源信…...
窗口框架frame(HTML前端)
一.窗口框架 作用:将网页分割为多个HTML页面,即将窗口分为多个小窗口,每个小窗口可以显示不同的页面,但是在浏览器中是一个完整的页面 基本语法 <frameset cols"" row""></frameset><frame…...
51单片机——数码管
一、数码管原理图 我们发现,总共有8个数码管。 它们的上面接8个LED,用来控制选择哪个数码管。例如要控制第三个数码管,就让LED6为0,其他为1,那LED又接到哪呢? 二、LED 由图可以看出,这个一个1…...
`re.compile(r“(<.*?>)“)` 如何有效地从给定字符串中提取出所有符合 `<...>` 格式的引用
regexp re.compile(r"(<.*?>)") 这行代码是在Python中使用正则表达式的一个示例,具体含义如下: re.compile(): 这个函数来自Python的 re(正则表达式)模块,用于将一个正则表达式模式编译成一个正则表…...
算法打卡:第十一章 图论part01
今日收获:图论理论基础,深搜理论基础,所有可达路径,广搜理论基础(理论来自代码随想录) 1. 图论理论基础 (1)邻接矩阵 邻接矩阵存储图,x和y轴的坐标表示节点的个数 优点…...
为C#的PetaPoco组件增加一个批量更新功能(临时表模式)
总有一些数据是需要批量更新的,并且更新的字段,每个数据都不一样。 为了实现这样一个功能,写了这样一个方法: using System.Linq.Expressions; using System.Reflection; using System.Text; using NetRube.Data; using PetaPoc…...
Spring实战——入门讲解
博客主页: 南来_北往 系列专栏:Spring Boot实战 Spring介绍 Spring实战的入门讲解主要涵盖了Spring框架的基本概念、核心功能以及应用场景。以下是关于Spring实战入门的具体介绍: Spring框架概述:Spring是一个轻量级的Java开发框架…...
MTK芯片机型的“工程固件” 红米note9 5G版资源预览 写入以及改写参数相关步骤解析
小米机型:小米5 小米5x 米6 米6x 米8 米9 米10系列 米11系列 米12系列 mix mix2 mix2s mix3 max max2 max3 note3 8se 9se cc9系列 米play 平板系列等分享 红米机型:红米note4 红米note4x 红米note5 红米note6 红米note7 红米note8 红米note8pro 红米s2 红米note7pro 红米…...
RK3568与RK3399深度对比:从架构到实战,边缘计算如何选型?
1. 项目概述:为什么我们需要重新审视RK3568与RK3399?最近在给一个边缘计算项目做硬件选型,客户的需求很明确:需要一块性能足够、接口丰富、功耗可控且长期供货稳定的核心板。在国产处理器的候选名单里,瑞芯微的RK3399和…...
如何构建专业级电子签名:现代前端解决方案指南
如何构建专业级电子签名:现代前端解决方案指南 【免费下载链接】smooth-signature H5带笔锋手写签名,支持PC端和移动端,任何前端框架均可使用 项目地址: https://gitcode.com/gh_mirrors/smo/smooth-signature 在数字化办公时代&#…...
mimalloc内存分配器深度解析:高性能多线程环境下的内存管理优化方案
mimalloc内存分配器深度解析:高性能多线程环境下的内存管理优化方案 【免费下载链接】mimalloc mimalloc is a compact general purpose allocator with excellent performance. 项目地址: https://gitcode.com/GitHub_Trending/mi/mimalloc C/C开发者在构建…...
别再死记硬背UML关系了!用4+1视图帮你理清类图、时序图到底画给谁看
别再死记硬背UML关系了!用41视图帮你理清类图、时序图到底画给谁看 在软件工程领域,UML(统一建模语言)是每个开发者都绕不开的话题。但有多少人真正理解这些图形的实际应用场景?我们常常看到这样的现象:团队…...
【2025 版】CMD 命令大全|超详细!零基础到精通,一篇封神✅
在Windows操作系统中,命令提示符(CMD)是一个强大的工具,允许用户通过输入命令来执行各种操作。无论是系统管理、网络配置,还是文件管理,CMD都能提供高效的解决方案。 一、基本命令 cd:更改目录…...
Redis对象类型与底层数据结构
一、Redis对象类型概述 1.1 Redis数据类型总览 Redis提供了丰富的数据类型,用于不同的业务场景:对象类型说明典型场景String字符串缓存、计数器、分布式锁List双向链表队列、消息队列、最新列表Hash哈希表存储对象、购物车Set无序集合好友关系、抽奖Zset…...
终极指南:如何用Mousecape轻松定制macOS鼠标指针,打造个性化桌面体验
终极指南:如何用Mousecape轻松定制macOS鼠标指针,打造个性化桌面体验 【免费下载链接】Mousecape Cursor Manager for OSX 项目地址: https://gitcode.com/gh_mirrors/mo/Mousecape 厌倦了macOS系统千篇一律的白色鼠标指针?想要为你的…...
从场景到代码:如何用研华Navigator为PCIE1751规划数据采集方案(AI/AO/DI/DO全解析)
从场景到代码:如何用研华Navigator为PCIE1751规划数据采集方案(AI/AO/DI/DO全解析) 在工业自动化领域,数据采集系统的设计往往面临一个核心矛盾:硬件性能的丰富性与实际需求的精准匹配。研华PCIE-1751作为一款多功能数…...
告别臃肿PDF!用Ghostscript命令行批量压缩/拆分/合并的保姆级教程
Ghostscript实战指南:PDF批量处理的高效命令行艺术 每次面对动辄上百兆的扫描版PDF报告时,你是否也经历过邮箱附件发送失败、云盘上传卡在99%的崩溃瞬间?当领导临时要求合并二十份季度报表,或是学术期刊需要按章节拆分投稿时&…...
核控卡件综合测试平台
1)系统简介核控卡件综合测试平台具备DI、DO、AI、AO四类IO信号的采集/输出功能以及串口、网口的通信功能,主要用于对综合测试平台及样机的功能测试提供支撑。综合测试平台集成测试设备的对外总线接口,主要包括RS422、以太网、AI、AO、DI、DO等…...
