Day50力扣打卡

news2024/9/27 12:37:59

打卡记录

在这里插入图片描述


三个无重叠子数组的最大和

链接

滑动窗口

class Solution:
    def maxSumOfThreeSubarrays(self, nums: List[int], k: int) -> List[int]:
        n, ans = len(nums), []
        sum1 = sum2 = sum3 = 0
        maxsum1idx, maxsum12idx = 0, ()
        maxsum1 = maxsum12 = total = 0
        
        for i in range(2 * k, n):
            sum1 += nums[i - 2 * k]
            sum2 += nums[i - k]
            sum3 += nums[i]
            if i >= 3 * k - 1:
                if sum1 > maxsum1:
                    maxsum1 = sum1
                    maxsum1idx = i - 3 * k + 1
                if maxsum1 + sum2 > maxsum12:
                    maxsum12 = maxsum1 + sum2
                    maxsum12idx = (maxsum1idx, i - 2 * k + 1)
                if maxsum12 + sum3 > total:
                    total = maxsum12 + sum3
                    ans = [*maxsum12idx, i - k + 1]
                sum1 -= nums[i - 3 * k + 1]
                sum2 -= nums[i - 2 * k + 1]
                sum3 -= nums[i - k + 1]
        return ans

动态规划 + 回溯

class Solution:
    def maxSumOfThreeSubarrays(self, nums, k):
        n = len(nums)
        sums = list(accumulate(nums, initial=0))
        dp = [[0] * 4 for _ in range(n + 10)]
        for i in range(n - k + 1, 0, -1):
            for j in range(1, 4):
                dp[i][j] = max(dp[i + 1][j], dp[i + k][j - 1] + sums[i + k - 1] - sums[i - 1])
        
        ans = [0] * 3
        i, j, idx = 1, 3, 0
        while j > 0:
            if dp[i + 1][j] > dp[i + k][j - 1] + sums[i + k - 1] - sums[i - 1]:
                i += 1
            else:
                ans[idx] = i - 1
                i += k
                j -= 1
                idx += 1
        return ans

T 秒后青蛙的位置(树状DP)

链接

class Solution:
    def frogPosition(self, n: int, edges: List[List[int]], t: int, target: int) -> float:
        g = [[] for _ in range(n + 1)]
        g[1].append(-1)
        for x, y in edges:
            g[x].append(y)
            g[y].append(x)
        ans = 0
        def dfs(x, fa, time, k):
            if x == target and (time == 0 or len(g[x]) == 1):
                nonlocal ans
                ans = 1 / k
                return True
            if x == target or time == 0:
                return False
            for y in g[x]:
                if y == fa:
                    continue
                if dfs(y, x, time - 1, k * (len(g[x]) - 1)):
                    return True
        dfs(1, -1, t, 1)
        return ans

树上最大得分和路径(树状DP)

链接

class Solution:
    def mostProfitablePath(self, edges: List[List[int]], bob: int, amount: List[int]) -> int:
        n = len(amount)
        g = [[] for _ in range(n)]
        g[0] = [-1]
        for x, y in edges:
            g[x].append(y)
            g[y].append(x)
        
        Bob_times = [n] * n
        def dfs1(x, fa, time):
            if x == 0:
                Bob_times[0] = time
                return True
            for y in g[x]:
                if y == fa:
                    continue
                if dfs1(y, x, time + 1):
                    Bob_times[x] = time
                    return True
            return False
        dfs1(bob, -1, 0)
        
        def dfs2(x, fa, time, score):
            if time < Bob_times[x]:
                score += amount[x]
            elif time == Bob_times[x]:
                score += amount[x] // 2
            if len(g[x]) == 1:
                return score
            res = -inf
            for y in g[x]:
                if y == fa:
                    continue
                res = max(res, dfs2(y, x, time + 1, score))
            return res
        return dfs2(0, -1, 0, 0)

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

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

相关文章

Mybatis-Plus代码生成器怎么用

下载插件 连接数据库 打开代码生成器 生成代码

几何对象的凸点集

// 引入VTK并初始化 #include "vtkAutoInit.h" VTK_MODULE_INIT(vtkRenderingOpenGL2); VTK_MODULE_INIT(vtkInteractionStyle);#include <vtkActor.h> #include <vtkCamera.h> #include <vtkConvexPointSet.h> #include <vtkDataSetMapper.h&g…

259k+ Star!这是我见过最全的开发者技术学习路线!

大家好&#xff0c;我是 Java陈序员。 自从上班后&#xff0c;身体是一天不如一天了&#xff0c;也很少有时间可以去学习新技术了。程序员如果技术跟不上&#xff0c;很容易就被淘汰。 而碎片化的学习效率又不高&#xff0c;往往今天学了&#xff0c;明天就忘了。有时候更是不…

同旺科技 USB TO SPI / I2C --- 调试W5500_TCP Client接收数据

所需设备&#xff1a; 内附链接 1、USB转SPI_I2C适配器(专业版); 首先&#xff0c;连接W5500模块与同旺科技USB TO SPI / I2C适配器&#xff0c;如下图&#xff1a; 发送数据6个字节的数据&#xff1a;0x11,0x22,0x33,0x44,0x55,0x66 在专业版调试软件中编辑指令&#xff0c…

金融帝国实验室(Capitalism Lab)V10版本城市DLC生存模式新改进

金融帝国实验室&#xff08;Capitalism Lab&#xff09;V10版本城市DLC生存模式新改进 ————————————— ★【全新V10版本开发播报】★ 即将发布的V10版本中的城市经济模拟DLC生存模式改进&#xff1a; ◈ 增加了一个新选项&#xff0c;将第一个城市的初始人口设置为…

Android wifi 框架以及Enable流程

Android P相比于Android O的变化 多了WifiStateMachinePrime&#xff08;状态机的前处理机制&#xff09;&#xff0c;wifiService的相关cmd 不再是直接send 给WifiStateMachine&#xff0c;而是被送到WifiStateMachinePrime先进行处理后&#xff0c;再送往WifiStateMachine也…

【带头学C++】----- 九、类和对象 ---- 9.3 析构函数

目录 9.3 析构函数 9.3.1 如何定义析构函数 看下面这个顺序进行释放&#xff0c;{} 代表一个生命周期&#xff0c;或者说作用域。 对象在生命周期结束就会消亡。 9.3 析构函数 9.3.1 如何定义析构函数 函数名和类名称相同&#xff0c;在函数名前加 ~ &#xff0c;没有返回…

uniapp开发小程序经验记录

uniapp开发小程序的过程中会遇到很多问题&#xff0c;这里记录一下相关工具优化&#xff0c;便于后来者参考。 每次保存代码后&#xff0c;小程序都跳回首页 针对这个问题&#xff0c;常规的做法就是修改pages配置文件&#xff0c;但是这种方式不便于路由参数的设置&#xff…

vue3 中使用 sse 最佳实践,封装工具

工具 // 接受参数 export interface SSEChatParams {url: string,// sse 连接onmessage: (event: MessageEvent) > void,// 处理消息的函数onopen: () > void,// 建立连接触发的事件finallyHandler: () > void,// 相当于 try_finally 中的 finally 部分&#xff0c;不…

用户态和内核态

实际上任何Linux发行版(Centos/RedHat....)&#xff0c;其系统内核都是Linux。我们的应用都需要通过Linux内核与硬件交互。为了避免用户应用导致冲突甚至内核崩溃&#xff0c;用户应用与内核是分离的&#xff1a; 进程的寻址空间会划分为两部分&#xff1a;内核空间、用户空间。…

虾皮数据分析网站:了解Shopee市场趋势与优化运营的利器

在如今的电商时代&#xff0c;越来越多的人选择在虾皮购物&#xff08;Shopee&#xff09;平台上开设自己的店铺。然而&#xff0c;要在这个竞争激烈的市场中脱颖而出并取得成功&#xff0c;并不是一件容易的事情。为了更好地了解市场趋势、优化产品和店铺运营&#xff0c;了解…

百度地图取点 范围绘制 画范围 手工绘制范围

<template><div class"app-container"><div style"margin-bottom:30px"><el-input type"textarea" :rows"2" placeholder"请输入内容" v-model"str"></el-input></div><d…

基于SSM框架的网上书店系统

基于SSM框架的网上书店系统 文章目录 基于SSM框架的网上书店系统 一.引言二.系统设计三.技术架构四.功能实现五.界面展示六.源码获取 一.引言 随着互联网的普及和电子商务的快速发展&#xff0c;网上书店系统成为了现代人购买图书的主要方式之一。网上书店系统不仅提供了便捷的…

MFC发送ZPL指令控制斑马打印机

1、参考1&#xff1a;用Python操控斑马打印机的技术总结 - 重拾初心的青年人 - 博客园 (cnblogs.com) 参考2&#xff1a;VC斑马打印机_vc zpl-CSDN博客 参考3&#xff1a;斑马打印机ZPL语言编程实战_梅长酥的博客-CSDN博客 参考4&#xff1a;关于斑马打印机开发的几种方式_斑马…

AGI智能新时代,大模型为软件开发带来范式变革

导语 | 人工智能作为新一轮科技革命和产业变革的重要驱动力量&#xff0c;尤其是在当下新一轮 AI 大模型、生成式 AI 浪潮背景下&#xff0c;重视通用人工智能&#xff08;AGI&#xff09;成为行业的共识。在当前&#xff0c; AGI 技术背后的逻辑究竟是怎样的&#xff1f;技术创…

【shell】

shell 一、shell简介二、shell脚本的执行方式三、shell变量3.1 shell变量介绍3.2 shell变量的定义3.1.1 基本语法3.2.2 定义变量的规则3.2.3 将命令的返回值赋予变量 四、环境变量的设置4.1 基本语法&#xff1a; 五、位置参数变量5.1 基本介绍5.2 基本语法 六、预定义变量6.1 …

人工智能_机器学习059_非线性核函数_poly核函数_rbf核函数_以及linear核函数效果对比---人工智能工作笔记0099

人工智能_机器学习059_非线性核函数介绍---人工智能工作笔记0099 那么我们应该如何调整这个SVC的参数,也就是我们应该使用哪种核函数,比较合适呢?这取决于我们的数据,适合使用哪个核函数,正好我们有 提供的score = accuracy_score(y_test,y_pred) 这样的评分函数,我们可以根据…

安装Python以及pycharm

Pycharm是编辑器。相当于Word对文字进行编辑。 Python是解释器。讲代码翻译为计算机可以理解的指令。 1、安装Python 官网&#xff1a;Welcome to Python.org 打开的时候有点慢等待一会就好&#xff0c;点击下载&#xff0c;选择Windows版本 等待一会&#xff0c;可以看到如…

全志T527设置gpio口输出高电平实际输出低电平

前言 在调试T527的时候&#xff0c;主板另外添加了gpio口去控制usb口的电源开关&#xff0c;软件上面需要在内核运行的时候将gpio口设置输出高电平&#xff0c;usb口才可以正常使用。改好系统固件后&#xff0c;升级发现&#xff0c;机器开机动画过程中可以控制gpio口去打开us…

怎么翻译英文医学文献资料

文献翻译是一项要求严谨、精确且地道的工作&#xff0c;对于医学文献翻译更是如此。那么&#xff0c;怎么翻译英文医学文献资料&#xff0c;医学英文文献翻译公司哪个好&#xff1f; 专业人士指出&#xff0c;在翻译医学文献时&#xff0c;理解原文的语境是至关重要的。这不仅需…