[LeetCode111双周赛LeetCode359周赛] DP双指针

参考灵神和闫总的讲解和代码:
https://www.bilibili.com/video/BV1rP411s7Z5
https://space.bilibili.com/206214

7006. 销售利润最大化

https://leetcode.cn/problems/maximize-the-profit-as-the-salesman/

Solution

动态规划 + 哈希表

首先按照 end 的顺序分组,每个组记录所有以 end 为终点的区间。

f[i+1] 表示不超过 i 的房屋的最大盈利。

  • 若编号 i 的房屋不卖,从上一个编号转移过来,f[i + 1] = f[i]
  • 若卖,需要遍历所有以 i 为终点的区间,找出最大的 f[s] + g
  • 取最大即可
class Solution:def maximizeTheProfit(self, n: int, offers: List[List[int]]) -> int:groups = [[] for _ in range(n)]for s, e, g in offers:groups[e].append((s, g))# f[i+1] 表示编号不超过 i 的房屋的最大盈利f = [0] * (n + 1)for end, group in enumerate(groups):# 不选f[end + 1] = f[end]for s, g in group:# 选f[end + 1] = max(f[end + 1], f[s] + g)return f[n]

6467. 找出最长等值子数组

https://leetcode.cn/problems/find-the-longest-equal-subarray/

Solution

同相双指针

在这里插入图片描述

class Solution:def longestEqualSubarray(self, nums: List[int], k: int) -> int:pos = [[] for _ in range(len(nums) + 1)]for i, x in enumerate(nums):pos[x].append(i)ans = 0for ps in pos:left = 0for right, p in enumerate(ps):while p - ps[left] - (right - left) > k:left += 1ans = max(ans, right - left + 1)return ans

Solution

暴力方法

class Solution:def minimumOperations(self, nums: List[int]) -> int:# 暴力方法res = n = len(nums)for i in range(n + 1):for j in range(n - i + 1):cnt = 0for k in range(n):t = -1if k <= i - 1:t = 1elif k <= i + j - 1:t = 2else:t = 3# 有多少不同if t != nums[k]:cnt += 1res = min(res, cnt)return res

最长子序列

@https://leetcode.cn/u/xiongxyowo/
最长递增子序列。为了在最少操作次数内使得数组有序,我们只需要对不在最长递增子序列中的元素进行修改,使其满足递增要求即可。也就是求原数组长度减去最长递增子序列长度。
例如,[1,3,2,1,3,3] 的最长递增子序列为 [1,-,2,-,3,3],我们只需要修改 [-,3,-,1,-,-] 即可。代码如下:

class Solution:def minimumOperations(self, nums: List[int]) -> int:n = len(nums)dp = [1] * nfor i in range(1, n):for j in range(0, i):if nums[i] >= nums[j]:dp[i] = max(dp[i], dp[j] + 1)return n - max(dp)

DP

最少修改多少个数字可以使数组非递减。定义 a, b, c 分别表示以 1, 2, 3 结尾的前缀数组需要修改的最小次数。

class Solution:def minimumOperations(self, nums: List[int]) -> int:a, b, c = 0, 0, 0for x in nums:aa, bb, cc = a, b, cif x == 1:a = aa # 因为本身就是 1,所以不用修改b = min(aa, bb) + 1c = min(aa, bb, cc) + 1elif x == 2:a = aa + 1b = min(aa, bb)c = min(aa, bb, cc) + 1else:a = aa + 1b = min(aa, bb) + 1c = min(aa, bb, cc)return min(a, b, c)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/49015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kafka-- kafka集群 架构模型职责分派讲解

一、 kafka集群 架构模型职责分派讲解 生产者将消息发送到相应的Topic&#xff0c;而消费者通过从Topic拉取消息来消费 Kafka奇数个节点消费者consumer会将消息拉去过来生产者producer会将消息发送出去数据管理 放在zookeeper

jmeter HTTP请求默认值

首先&#xff0c;打开JMeter并创建一个新的测试计划。 右键单击测试计划&#xff0c;选择"添加" > “配置元件” > “HTTP请求默认值”。 在HTTP请求默认值中&#xff0c;您可以设置全局的HTTP请求属性&#xff0c;例如&#xff1a; 服务器地址&#xff1a…

InetAddress 方法学习

原文链接&#xff1a; https://blog.csdn.net/f641385712/article/details/105185361 https://blog.csdn.net/f641385712/article/details/105233229 IP地址是IP使用的32位&#xff08;IPv4&#xff09;或者128位&#xff08;IPv6&#xff09;位无符号数字&#xff0c;它是传输…

数据结构——队列(C语言)

需求&#xff1a;无 本篇文章将解决一下几个问题&#xff1a; 队列是什么&#xff1f;如何实现一个队列&#xff1f;什么场景下会用队列&#xff1f; 队列的概念&#xff1a; 队列&#xff1a;一种只允许一端进行插入数据操作&#xff0c;在另一端进行删除操作的特殊线性表。…

设计模式二十:观察者模式(Observer Pattern)

定义了一种一对多的依赖关系&#xff0c;允许多个观察者&#xff08;也称为订阅者&#xff09;对象同时监听一个主题对象&#xff0c;当主题对象发生变化时&#xff0c;所有依赖于它的观察者都会收到通知并自动更新。 观察者模式的使用场景 观察者模式在许多场景中都可以发挥…

springboot项目数据库配置类DatabaseConfig实现代码

1&#xff1a;yml配置类 spring:datasource:name: texturl: jdbc:mysql://192.168.11.50:3306/dsdd?characterEncodingUTF-8&useUnicodetrue&useSSLfalse&tinyInt1isBitfalse&allowPublicKeyRetrievaltrue&serverTimezoneUTCusername: rootpassword: roo…

Redis数据结构之List

Redis 中列表&#xff08;List&#xff09;类型是用来存储多个有序的字符串&#xff0c;列表中的每个字符串成为元素 Eelement&#xff09;&#xff0c;一个列表最多可以存储 2^32-1 个元素。 在 Redis 中&#xff0c;可以对列表两端插入&#xff08;push&#xff09;和弹出&am…

jenkins 是什么?

一、jenkins 是什么&#xff1f; Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具&#xff0c;起源于Hudson&#xff0c;主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写&#xff0c;可在Tomcat等流行的servlet容器中运行&#…

open cv学习 (一)像素的操作

open cv 入门 像素的操作 demo1 import cv2 import os import numpy as np# 1、读取图像 # imread()方法# 设置图像的路径 Path "./img.png" # 设置读取颜色类型默认是1代表彩色图 0 代表灰度图 # 彩色图 flag 1 # 灰度图 #flag 0# 读取图像&#xff0c;返回值…

小程序数据可视化:使用图表和可视化工具展示数据

在当今信息爆炸的时代&#xff0c;数据无疑是最珍贵的资源之一。然而&#xff0c;海量的数据如果不加以整理和展示&#xff0c;很难从中获取有价值的信息。这时候&#xff0c;数据可视化就发挥了重要作用&#xff0c;它能够通过图表和可视化工具将复杂的数据转化为直观的视觉形…

【爬虫练习之glidedsky】爬虫-基础2

题目 链接 爬虫往往不能在一个页面里面获取全部想要的数据&#xff0c;需要访问大量的网页才能够完成任务。 这里有一个网站&#xff0c;还是求所有数字的和&#xff0c;只是这次分了1000页。 思路 找到调用接口 可以看到后面有个参数page来控制页码 代码实现 import reques…

Vim学习(四)——命令使用技巧

命令模式 打开文本默认模式&#xff0c;按**【ESC】**重新进入 【/关键字】&#xff1a;搜索匹配关键字 G&#xff1a;最后一行 gg&#xff1a;第一行 hjkl:左下右上 yy: 复制一行 dd&#xff1a;删除一行 p:粘贴 u: 撤销插入模式 按**【i / a / o】**键均可进入文本编辑模式…

QT中按钮的基类QAbstractButton

QT中按钮的基类QAbstractButton 关于控件类的学习方法继承关系信号槽函数标题和图标按钮的 Check 属性 关于控件类的学习方法 控件类很多&#xff0c;API更多&#xff0c;但是不需要记忆知道控件对应的类名&#xff0c;通过帮助文档随用随查优先看帮助文档中控件对应的信号和槽…

【小沐学NLP】Python进行统计假设检验

文章目录 1、简介1.1 假设检验的定义1.2 假设检验的类型1.3 假设检验的基本步骤 2、测试数据2.1 sklearn2.2 seaborn 3、正态分布检验3.1 直方图判断3.2 KS检验&#xff08;scipy.stats.kstest&#xff09;3.3 Shapiro-Wilk test&#xff08;scipy.stats.shapiro&#xff09;3.…

回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览…

【LeetCode】盛最多水的容器

盛最多水的容器 题目描述算法分析编程代码 链接: 盛最多水的容器 题目描述 算法分析 编程代码 class Solution { public:int maxArea(vector<int>& height) {int left 0;int right height.size()-1;int ret 0;while(left < right){int n min(height[left],h…

LMLCCS_UPDATEFO2 LCL DB 方法 get_normvector 头寸 A 中RC 1 内部错误,过账时报错<转载>

原文链接&#xff1a;https://blog.csdn.net/XFYBB/article/details/129174579 物料的成本中心&#xff0c;作业价格没有维护 再用FCMLHELP&#xff0c;重新创建一下 se37&#xff0c;FCMLHELP_CHECK_TESTFLAG&#xff0c;打断点&#xff0c;跳过PW

Python快速检验数据分布

假设检验的前提是确定数据的分布&#xff0c;本文介绍Python检验数据样本是否服从一定分布。使用方法是柯尔莫可洛夫-斯米洛夫检验&#xff08;Kolmogorov–Smirnov test&#xff0c;K-S test&#xff09;&#xff0c;K-S检验方法适用于探索连续型随机变量的分布&#xff0c;对…

vue3 pdf、word等文件下载

效果&#xff1a; <div class"byLawBox"><div class"titleBox">规章制度公示</div><div class"contentBox"><TableList:loading"byLawloading"ref"byLawtablistRef":hasImport"false"…

基于Vue的3D饼图

先看效果&#xff1a; 再看代码&#xff1a; <template><div class"container"><div style"height: 100%;width: 100%;" id"bingtu3D"></div></div></template> <script> import "echarts-liqu…