LeetCode 每日一题 2024/10/28-2024/11/3

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步


目录

      • 10/28 685. 冗余连接 II
      • 10/29 3211. 生成不含相邻零的二进制字符串
      • 10/30 3216. 交换后字典序最小的字符串
      • 10/31 3165. 不包含相邻元素的子序列的最大和
      • 11/1 3259. 超级饮料的最大强化能量
      • 11/2 3226. 使两个整数相等的位更改次数
      • 11/3638. 大礼包


10/28 685. 冗余连接 II

check用来检查是否满足
1.入度不能有大于1的
2.不能存在圈
先将所有点的父节点取出,如果存在有两个父节点 那么说明这个节点需要取出一条边 遍历后check是否正确
若正确 将结果暂存ret
判断ret,
若ret内有多个 则取出位置最靠后的作为结果
若ret==0:
所有节点入度都正常 说明存在圈 从后往前去除一个点 check是否正常 若正常则答案为这个点

def findRedundantDirectedConnection(edges):""":type edges: List[List[int]]:rtype: List[int]"""def find(p,x):while p[x] != x:p[x] = p[p[x]]x = p[x]return p[x]# 判断给定的图是不是有圈def cycle(graph):p = {}for a, b in graph:p.setdefault(a, a)p.setdefault(b, b)pa, pb = find(p, a), find(p, b)print([a,b],p,pa,pb)if pa == pb: return(True)else:p[pa] = p[pb]dic={}ans=[]ret =[]def check(l):#入度不能大于1endpoint = [y for x,y in l]if len(endpoint)!=len(set(endpoint)):return Falsedef find(p,x):while p[x] != x:p[x] = p[p[x]]x = p[x]return p[x]# 判断给定的图是不是有圈def cycle(graph):p = {}for a, b in graph:p.setdefault(a, a)p.setdefault(b, b)pa, pb = find(p, a), find(p, b)if pa == pb: return(True)else:p[pa] = p[pb]if cycle(l):return Falsereturn Truefor v in edges:top = v[0]end = v[1]dic.setdefault(end,[])dic[end].append(top)for k in dic.keys():if len(dic[k])>1:for v in dic[k]:ori = edges[:]tmp=[v,k]ori.pop(ori.index(tmp))if check(ori):ret.append(tmp)if len(ret)==0:for i in range(len(edges)-1,-1,-1):ori = edges[:]ori.pop(i)if check(ori):ans = edges[i]breakelse:pos = -1for i in ret:if edges.index(i)>pos:pos = edges.index(i)ans = i    return ans

10/29 3211. 生成不含相邻零的二进制字符串

所有长度为2的子字符串至少有一个1 说明不存在连续的两个0
将二进制按位取反为x 判断不存在连续两个1
如果x&(x>>1)=0 说明x没有连续的两个1

def validStrings(n):""":type n: int:rtype: List[str]"""ans = []mask = (1<<n)-1for i in range(1<<n):t = mask^iif (t>>1 & t)==0:ans.append(f"{i:0{n}b}")return ans

10/30 3216. 交换后字典序最小的字符串

从前往后寻找
找到首次出现满足前面数字比后面大的就交换

def getSmallestString(s):""":type s: str:rtype: str"""l=list(s)n=len(s)for i in range(n-1):if int(l[i])%2==int(l[i+1])%2 and l[i]>l[i+1]:l[i],l[i+1]=l[i+1],l[i]breakreturn ''.join(l)

10/31 3165. 不包含相邻元素的子序列的最大和

将数组分为两段 每一段的首尾都有不选 或 可选两种情况
一共就有四种情况
00:首不选 尾不选
01:首不选 尾可选
10:首可选 尾不选
11:首可选 尾可选
将某数组x分为前后a,b两段 分别讨论四种情况
f(x)为x数组不相邻子序列最大和
f00(x) = max(f01(a)+f00(b),f00(a)+f10(b))
f01(x) = max(f00(a)+f11(b),f01(a)+f01(b))
f10(x) = max(f10(a)+f10(b),f11(a)+f00(b))
f11(x) = max(f10(a)+f11(b),f11(a)+f01(b))
用线段树来实现单点的修改 每个节点维护对应区间f(X)

def maximumSumSubsequence(nums, queries):""":type nums: List[int]:type queries: List[List[int]]:rtype: int"""MOD=10**9+7n=len(nums)tr = [[0]*4 for _ in range(2<<n.bit_length())]def maxv(a,b):return b if b>a else adef merg(k):a,b = tr[k*2],tr[k*2+1]tr[k][0] = max(a[0]+b[2],a[1]+b[0])tr[k][1] = max(a[0]+b[3],a[1]+b[1])tr[k][2] = max(a[2]+b[2],a[3]+b[0])tr[k][3] = max(a[2]+b[3],a[3]+b[1])def build(k,l,r):if l==r:tr[k][3]=maxv(nums[l],0)returnm=(l+r)//2build(k*2,l,m)build(k*2+1,m+1,r)merg(k)def change(k,l,r,i,val):if l==r:tr[k][3]=max(val,0)returnm=(l+r)//2if i<=m:change(k*2,l,m,i,val)else:change(k*2+1,m+1,r,i,val)merg(k)build(1,0,n-1)ans = 0for i,val in queries:change(1,0,n-1,i,val)ans = (ans+tr[1][3])%MODreturn ans

11/1 3259. 超级饮料的最大强化能量

动态规划 f[i][0/1]代表第i步喝A/B获得的最大值

def maxEnergyBoost(energyDrinkA, energyDrinkB):""":type energyDrinkA: List[int]:type energyDrinkB: List[int]:rtype: int"""n=len(energyDrinkA)f = [[0,0] for _ in range(n+1)]for i in range(1,n+1):f[i][0] = f[i-1][0]+energyDrinkA[i-1]f[i][1] = f[i-1][1]+energyDrinkB[i-1]if i>1:f[i][0] = max(f[i][0],f[i-2][1]+energyDrinkA[i-1])f[i][1] = max(f[i][1],f[i-2][0]+energyDrinkB[i-1])return max(f[n][0],f[n][1])

11/2 3226. 使两个整数相等的位更改次数

按位判断

def minChanges(n, k):""":type n: int:type k: int:rtype: int"""ans = 0while n>0 or k>0:if (n&1)==0 and (k&1)==1:return -1if (n&1)==1 and (k&1)==0:ans+=1n>>=1k>>=1return ans

11/3638. 大礼包

过滤掉不需要的套餐 保留有用套餐
dfs 遍历选取每一种套餐的情况
算出不买套餐的价格base
如果买套餐实惠则替换价格

def shoppingOffers(price, special, needs):""":type price: List[int]:type special: List[List[int]]:type needs: List[int]:rtype: int"""n = len(price)fsp = []for sp in special:if sum(sp[i]*price[i] for i in range(n))>sp[n]:fsp.append(sp)def dfs(curneed):base = sum(curneed[i]*price[i] for i in range(n))for cursp in fsp:p = cursp[n]netneed = []for i in range(n):if cursp[i]>curneed[i]:breaknetneed.append(curneed[i]-cursp[i])if len(netneed)==n:base = min(base,dfs(netneed)+p)return basereturn dfs(needs)

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

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

相关文章

faiss用于大数据量的向量检索

背景:10亿(Billion级别)的数据应该是一个很大的数据了,尤其是维度在768+级别(还有1024,1536等),这个数据量我做了一个实验,shape为(1kw,768)的array(numpy)占内存为30G(float32格式),如果能降低为float16更好不过,但似乎faiss没有这种方法或者精度有所损失。 …

一文详解开源ETL工具Kettle!

一、Kettle 是什么 Kettle 是一款开源的 ETL&#xff08;Extract - Transform - Load&#xff09;工具&#xff0c;用于数据抽取、转换和加载。它提供了一个可视化的设计环境&#xff0c;允许用户通过简单的拖拽和配置操作来构建复杂的数据处理工作流&#xff0c;能够处理各种数…

D59【python 接口自动化学习】- python基础之异常

day59 捕获异常常见问题 学习日期&#xff1a;20241105 学习目标&#xff1a;异常 -- 75 避坑指南&#xff1a;编写捕获异常程序时经常出现的问题 学习笔记&#xff1a; 捕获位置设置不当 设置范围不当 捕获处理设置不当 嵌套try-except语法错误 总结 位置&#xff0c;范围…

深度学习在大数据处理中的应用

深度学习在大数据处理中扮演着至关重要的角色&#xff0c;其应用广泛且深入。以下是一些深度学习在大数据处理中的具体应用&#xff1a; 1. 自然语言处理&#xff08;NLP&#xff09; 深度学习技术在大数据处理中的自然语言处理方面取得了显著进展。语义理解方面&#xff0c;…

Java开发配置文件的详情教程配置文件类型

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中……&#xff09; 4、牛逼哄哄的 IDEA编程利器技巧(编写中……&#xff09; 5、面经吐血整理的 面试技…

应审稿人要求| pseudo bulk差异分析

一、写在前面 最近有粉丝提问&#xff0c;收到了如下的审稿人意见&#xff1a; 审稿人认为在单细胞测序过程中&#xff0c;利用findMarker通过Wilcox获得的差异基因虽然考虑到了不同组别细胞数量的不同&#xff0c;但是未能考虑到每组样本数量的不同。因此作者希望纳入样本水平…

Android13 系统/用户证书安装相关分析总结(二) 如何增加一个安装系统证书的接口

一、前言 接着上回说&#xff0c;最初是为了写一个SDK的接口&#xff0c;需求大致是增加证书安装卸载的接口&#xff08;系统、用户&#xff09;。于是了解了一下证书相关的处理逻辑&#xff0c;在了解了功能和流程之后&#xff0c;发现settings中支持安装的证书&#xff0c;只…

矩阵特殊打印方式

小伙伴们大家好&#xff0c;好几天没更新了&#xff0c;主要有个比赛。从今天起继续给大家更新&#xff0c;今天给大家带来一种新的题型&#xff1a;矩阵特殊打印方式。 螺旋打印矩阵 解题思路 首先给大家看一下什么是螺旋方式打印&#xff1a; 就像这样一直转圈圈。 我想大多…

IO同步异步/阻塞非阻塞

同步和异步&#xff1a;当前线程是否需要等待方法调用执行完毕。 阻塞和非阻塞&#xff1a;当前接口数据还未准备就绪时&#xff0c;线程是否被阻塞挂起 同步和异步其实是处理框架这种高层次维度来看待问题的&#xff0c;而阻塞和非阻塞往往是针对底层的系统调用方法来抉择&a…

C语言 流程控制语句

时间&#xff1a;2024.11.5 一、学习内容 流程控制语句&#xff1a; 通过一些语句&#xff0c;控制程序的执行流程。 1、顺序结构 从上往下依次执行&#xff0c;是程序默认的执行过程。 2、if的第一种格式 if(关系表达式) { 语句体&#xff1b; } //考试奖励&#xff1a;…

03集合基础

目录 1.集合 Collection Map 常用集合 List 接口及其实现 Set 接口及其实现 Map 接口及其实现 Queue 接口及其实现 Deque 接口及其实现 Stack类 并发集合类 工具类 2.ArrayList 3.LinkedList 单向链表的实现 1. 节点类&#xff08;Node&#xff09; 2. 链表类&a…

HTMLCSS:3D 旋转卡片的炫酷动画

效果演示 这段代码是一个HTML和CSS的组合&#xff0c;用于创建一个具有3D效果的动画卡片。 HTML <div class"obj"><div class"objchild"><span class"inn6"><h3 class"text">我是谁&#xff1f;我在那<…

总结:Vue2中双向绑定不生效的排查方法及原理

之前陆陆续续的学习了Vue2的双向绑定,深度监视,但是真正使用时,需要将它们融会贯通,还是需要刻意的练习和记忆的。我常常遇到的问题是,当页面上某element UI控件与data中的某属性进行了双向绑定,但是,要么是data中的属性数据发生了更新之后页面未实时更新,要么是页面上…

网络自动化03:简单解释send_config_set方法并举例

目录 拓扑图设备信息 netmiko涉及方法send_config_set()方法的简单示例代码输出结果代码解释导入模块配置信息config_device_interface_description 函数主程序块总结 send_config_set方法参数&#xff1a;1. enter_config_mode2. config_commands3. enter_config_mode4. error…

什么是实验室信息(lis)系统?

医院LIS系统定义&#xff1a; 医院LIS系统&#xff0c;即实验室信息系统&#xff08;Laboratory Information System&#xff09;&#xff0c;是专为医院检验科设计的信息管理系统。它通过计算机网络技术实现实验仪器与计算机的联网&#xff0c;智能化、自动化地管理病人样品登…

如何为 GitHub 和 Gitee 项目配置不同的 Git 用户信息20241105

&#x1f3af; 如何为 GitHub 和 Gitee 项目配置不同的 Git 用户信息 引言 在多个代码托管平台&#xff08;如 GitHub 和 Gitee&#xff09;之间切换时&#xff0c;正确管理用户信息至关重要。频繁使用不同项目时&#xff0c;若用户配置不当&#xff0c;可能会导致意外提交或…

Android 原子性类型都有哪些

1. 基本类型原子类 AtomicInteger&#xff1a;用于对整数进行原子操作&#xff0c;如incrementAndGet()方法可以原子地将当前值加1并返回新值&#xff0c;getAndSet()方法可以原子地设置新值并返回旧值。AtomicLong&#xff1a;和AtomicInteger类似&#xff0c;用于长整型的原…

MySQL45讲 第十六讲 “order by”是怎么工作的?

文章目录 MySQL45讲 第十六讲 “order by”是怎么工作的&#xff1f;一、引言二、全字段排序&#xff08;一&#xff09;索引创建与执行情况分析&#xff08;二&#xff09;执行流程&#xff08;三&#xff09;查看是否使用临时文件 三、rowid 排序&#xff08;一&#xff09;参…

『YOLO』断点训练、解决训练中断异常情况

文章目录 方法一方法二 当yolo在训练的时候&#xff0c;如果训练中断或者出现异常&#xff0c;可通过修改代码&#xff0c;从上一次断掉处重新训练&#xff0c;实现断点续训。 方法一 第一种方法&#xff1a; 按照官方给出的恢复训练代码&#xff0c;用yolo命令格式&#xff…

网页版五子棋—— WebSocket 协议

目录 前言 一、背景介绍 二、原理解析 1.连接过程&#xff08;握手&#xff09; 2.报文格式 三、代码示例 1.服务端代码 &#xff08;1&#xff09;TestAPI 类 &#xff08;2&#xff09;WebSocketConfig 类 2.客户端代码 3.代码演示 结尾 前言 从本篇文章开始&am…