蓝桥杯思维训练(五)
文章目录
- 子集II
- 1191.K次串联后最大子数组之和
子集II
子集II


思路分析:求解子集的问题的关键就是,通过递归与回溯,我们就是得确定以某个元素开始的子集,对于这个题目来说,比较麻烦的一点就是,存在重复的元素,这样如果不增加一个判断的话,会导致我们的结果存在重复的元素
如何消除重复的情况?
nums.sort() # 排序,方便去重
# 在这个for 训练里面,我们是用于选择子集的开始的元素的,只要我们开始的元素没有和前一个元素相同,那么就可以进行递归增加元素
if i > start and nums[i] == nums[i-1]:continue
整体的代码中,我们使用ans 来记录全部的子集,path来记录当前的元素的情况
class Solution:def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:nums.sort() # 排序,方便去重ans = []path = []def backtrack(start):ans.append(path[:]) # 添加当前子集到结果中for i in range(start, len(nums)):# 跳过重复元素if i > start and nums[i] == nums[i-1]:continuepath.append(nums[i]) # 选择当前元素backtrack(i + 1) # 递归path.pop() # 撤销选择backtrack(0)return ans
1191.K次串联后最大子数组之和
1191.K次串联后最大子数组之和


思路分析:由于k和arr数组长度都很长,所以不可能全部拼接起来,所以说就根本不用全部拼接起来
规律:当k=1的时候,就是正常算,如果K>=2的时候,我们可以先拼接两个进行正常运算,如果max(dp) 小于等于0,则返回0,然后我们思考这两段之间能否插入剩余的段,所以我们计算sum(arr),如果sum(arr)>0,就可以拼接在两段之间,否则就直接返回两段的情况,记得要取模再返回
class Solution:def kConcatenationMaxSum(self, arr: List[int], k: int) -> int:# 肯定是不能直接拼接上去再dp的不然,o(n)的时间复杂度也到了10^10,所以还是在之前的数组arr操作#n = len(arr)ans = 0if k == 1:dp = [0]*ndp[0] = arr[0]for i in range(1,n):dp[i] = max(dp[i-1]+arr[i],arr[i])# 判断ans,如果小于等于0,就返回0,否则就是取模返回ans = max(dp)return ans%(10**9+7) if ans >0 else 0else:dp = [0]*(2*n)dp[0] = arr[0]# 拼接nums = arr + arrfor i in range(1,2*n):dp[i] = max(dp[i-1]+nums[i],nums[i])# 查看最大值ans = max(dp)# 小于等于0就返回if ans<=0:return 0sumarr = sum(arr)# 看看能否插入其中if sumarr>0:return (ans+(k-2)*sumarr)%(10**9+7)else:return ans%(10**9+7)相关文章:
蓝桥杯思维训练(五)
文章目录 子集II1191.K次串联后最大子数组之和 子集II 子集II 思路分析: 求解子集的问题的关键就是,通过递归与回溯,我们就是得确定以某个元素开始的子集,对于这个题目来说,比较麻烦的一点就是,存在重复的…...
I.MX6ULL 中断介绍下
GIC重点寄存器 1.中断分发器寄存器(Distributor register ) a.Distributor Control Register(中断分发控制寄存器), GICD_CTLR Purpose Enables the forwarding of pending interrupts from the Distributor to the CPU interfaces 使能将挂起的中断从…...
Elasticsearch 生产集群部署终极方案
Elasticsearch 集群部署 1.集群部署1.1 新增用户1.2 优化操作系统1.3 JDK1.4 elasticsearch1.5 开机自启动 2.安全认证功能2.1 生成CA证书2.2 生成密钥2.3 上传至其他节点2.4 修改属主、属组2.5 配置文件添加参数2.6 各节点添加密钥库密码2.7 设置用户密码 1.集群部署 1.1 新增…...
Python用langchain、OpenAI大语言模型LLM情感分析苹果股票新闻数据及提示工程优化应用...
全文链接:https://tecdat.cn/?p39614 本文主要探讨了如何利用大语言模型(LLMs)进行股票分析。通过使用提供的股票市场和金融新闻获取数据,结合Python中的相关库,如Pandas、langchain等,实现对股票新闻的情…...
【正点原子K210连载】第六十七章 音频FFT实验 摘自【正点原子】DNK210使用指南-CanMV版指南
第六十七章 音频FFT实验 本章将介绍CanMV下FFT的应用,通过将时域采集到的音频数据通过FFT为频域。通过本章的学习,读者将学习到CanMV下控制FFT加速器进行FFT的使用。 本章分为如下几个小节: 32.1 maix.FFT模块介绍 32.2 硬件设计 32.3 程序设…...
Centos Ollama + Deepseek-r1+Chatbox运行环境搭建
Centos Ollama Deepseek-r1Chatbox运行环境搭建 内容介绍下载ollama在Ollama运行DeepSeek-r1模型使用chatbox连接ollama api 内容介绍 你好! 这篇文章简单讲述一下如何在linux环境搭建 Ollama Deepseek-r1。并在本地安装的Chatbox中进行远程调用 下载ollama 登…...
ReactNative进阶(五十九):存量 react-native 项目适配 HarmonyOS NEXT
文章目录 一、前言二、ohos_react_native2.1 Fabric2.2 TurboModule2.2.1 ArkTSTurboModule2.2.2 cxxTurboModule: 三、拓展阅读 一、前言 2024年10月22日19:00,华为在深圳举办“原生鸿蒙之夜暨华为全场景新品发布会”,主题为“星河璀璨&…...
go并发和并行
进程和线程 进程(Process)就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位,进程是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一个进程都有一个自己的地址空间。…...
一种解决SoC总线功能验证完备性的技术
1. 前言 通过总线将各个IP通过总线连接起来的SoC芯片是未来的大趋势,也是缩短芯片开发周期,抢先进入市场的常用方法。如何确保各个IP是否正确连接到总线上,而且各IP的地址空间分配是否正确,是一件很棘手的事情。本文提出了一种新…...
Web3 与区块链:开启透明、安全的网络新时代
在这个信息爆炸的时代,我们对网络的透明性、安全性和隐私保护的需求日益增长。Web3,作为新一代互联网的代表,正携手区块链技术,引领我们走向一个更加透明、安全和去中心化的网络世界。本文将深入探讨 Web3 的基本概念、区块链技术…...
c#中Thread.Join()方法的经典示例
在 C# 中,Thread.Join 是一个非常有用的方法,它可以让主线程(调用线程)等待子线程(被调用线程)执行完毕后再继续执行。 1、经典示例1 using System; using System.Threading;public class Example {stati…...
深入了解越权漏洞:概念、危害与防范
前言 越权漏洞作为一种常见且极具威胁的安全隐患,就像隐藏在暗处的 “黑客帮凶”,时刻威胁着我们的数据安全和隐私。就让我们一起揭开越权漏洞的神秘面纱,深入了解它的来龙去脉、危害以及应对之策。 一、什么是越权漏洞 想象一下࿰…...
MySQL 数据库编程-C++
目录 1 数据库基本知识 1.1 MYSQL常见命令 1.2 SQL注入 1.3 ORM框架 1 数据库基本知识 MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成:…...
dl学习笔记(9):pytorch数据处理的完整流程
1)自动导入常用库的设置方式 在开始之前,这里介绍一下自动导入常用的你需要加载的库的操作方式。 首先在我们的目录下找到ipython文件,如下图: 然后找到里面的startup文件: 然后新建一个文本文档,输入你每…...
wps中的vba开发
推荐先学习vba语言(兰色幻想80集) 保存代码时注意保存为 .xlsm(启用宏的工作簿) 子程序SUN和函数FUNCTION: Sub 第一个程序()MsgBox "这是第一个程序"End Sub 注释Sub 第二个程序()Dim str As Stringstr "这是第二个程序&…...
力扣 LCR 078 合并K个升序链表
思路 解题过程 分治合并 与 LeetCode 21题 合并两个有序链表 相似 只是在此题的基础上增加了链表的数量。 使用递归将链表数组不断分成两半,直到分成的小组都只剩下一个链表元素为止,随后开始合并链表。 复杂度 时间复杂度: O(N * logK) K 为 链表(li…...
【hive】记一次hiveserver内存溢出排查,线程池未正确关闭导致
一、使用 MemoryAnalyzer软件打开hprof文件 很大有30G,win内存24GB,不用担心可以打开,ma软件能够生成索引文件,逐块分析内存,如下图。 大约需要4小时。 overview中开不到具体信息。 二、使用Leak Suspects功能继续…...
React Native 开发 安卓项目构建工具Gradle的配置和使用
gradle基本知识 gradle是React Native和Flutter调试、构建安卓App的打包工具。 gradle可以简单的类比为前端的webpack,webpack将源文件打包成HTML、CSS、JavaScript,而gradle将源文件打包成apk或aar(Android Assemble Bundle)。…...
IntelliJ IDEA新版本的底部version control(或git)里local change窗口显示配置修改详细教程
环境 IntelliJ IDEA 2024.3.2.2 (Ultimate Edition) Runtime version: 21.0.58-b631.30 aarch64 (JCEF 122.1.9) macOS 14.2.1 自己记录下。 步骤 设置 --> Version Control(版本控制) --> Commit(提交) --> 去掉勾选:Use non-modal commit interface…...
MySQL三大日志——binlog、redoLog、undoLog详解
日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息,能帮助我们进行很多容错及分析工作,其中有三大日志与我们这些开发者息息相关,本文将介绍binlog、redoLog、undoLog三种日志: 1. redoLog 1.1 为什么…...
Vivado 时序约束文件 (.xdc) 管理与维护实战指南:从单文件到团队协作
Vivado 时序约束文件 (.xdc) 管理与维护实战指南:从单文件到团队协作 在FPGA设计流程中,时序约束文件(.xdc)如同交通信号灯,为设计指明方向与规则。随着项目规模扩大和团队协作需求增加,如何高效管理这些约…...
告别重复编码:用快马ai自动生成c语言基础工具模块提升效率
告别重复编码:用快马AI自动生成C语言基础工具模块提升效率 在C语言开发中,我们经常需要重复编写一些基础工具模块,比如安全的字符串输入、动态数组管理、日志记录等功能。这些代码虽然不复杂,但每次都从头开始写确实很浪费时间。…...
SpringAI集成Ollama实战:从零构建本地AI对话服务
1. 环境准备:搭建Ollama本地AI模型服务 想要在本地运行AI对话服务,首先需要部署Ollama这个轻量级的大模型运行环境。Ollama最大的优势在于它能让开发者在普通配置的电脑上就能运行各种开源大模型,而不需要昂贵的GPU服务器。 安装过程非常简单…...
告别版本冲突:利用快马平台高效管理多jdk环境,提升开发效率
作为一名Java开发者,我经常遇到这样的困扰:接手不同项目时,每个项目可能要求使用不同版本的JDK。手动切换环境变量、反复安装卸载JDK版本,不仅浪费时间,还容易出错。最近我发现了一个高效的解决方案——利用InsCode(快…...
CodeBlocks高效开发环境配置指南:从字体优化到智能编码
1. CodeBlocks开发环境基础配置 刚接触CodeBlocks时,我经常被默认的界面和功能搞得头晕眼花。经过多年实战,我发现合理的初始配置能让开发效率提升至少50%。我们先从最基础的视觉优化开始。 字体设置是影响编码舒适度的首要因素。默认的字体大小在1080p屏…...
比特币钱包恢复工具btcrecover:从原理到实践的开源解决方案
比特币钱包恢复工具btcrecover:从原理到实践的开源解决方案 【免费下载链接】btcrecover An open source Bitcoin wallet password and seed recovery tool designed for the case where you already know most of your password/seed, but need assistance in tryi…...
别再只用Whisper了!WhisperX + Python 实战:如何为3分钟视频批量ASR搭建高效处理流水线
WhisperX Python 实战:构建高吞吐量语音识别流水线的工程实践 在音视频内容爆炸式增长的时代,语音识别技术已成为内容生产、知识管理、数字营销等领域的基础设施。当处理规模从单个文件扩展到数百小时的音视频素材时,传统单次处理模式显露出…...
基于Ascend 950的Cube编程
直播回放链接:基于下一代硬件的Cube编程_哔哩哔哩_bilibili...
hgproxy4.0.35.0之前版本数据库连接卡在parse状态
文章目录环境症状问题原因解决方案环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5.10 症状 查询数据库后台连接进程,发现主备节点均有超过几天的长连接,且状态卡在parse状态 问题原因 数据库会话sql出错后…...
Oni-Duplicity:轻松定制《缺氧》游戏体验,告别资源与角色困扰
Oni-Duplicity:轻松定制《缺氧》游戏体验,告别资源与角色困扰 【免费下载链接】oni-duplicity A web-hosted, locally-running save editor for Oxygen Not Included. 项目地址: https://gitcode.com/gh_mirrors/on/oni-duplicity 你是否曾在《缺…...
