LeetCode 每日一题 2022/11/28-2022/12/4
admin
2024-03-14 10:05:54
0

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


目录

      • 11/28 882. 细分图中的可到达节点
      • 11/29 1758. 生成交替二进制字符串的最少操作数
      • 11/30 895. 最大频率栈
      • 12/1 1779. 找到最近的有相同 X 或 Y 坐标的点
      • 12/2 1769. 移动所有球到每个盒子所需的最小操作数
      • 12/3 1796. 字符串中第二大的数字
      • 12/4


11/28 882. 细分图中的可到达节点

原始节点间的细分节点数可看做节点间的距离
使用dijkstra 可以算出起点到个点的最短路径
哈希表used[(u,v)]记录节点u到v可达的细分节点 (v,u)记录v到u可达的细分节点
最后统计时相加 并不大于u,v间的细分节点总数

def reachableNodes(edges, maxMoves, n):""":type edges: List[List[int]]:type maxMoves: int:type n: int:rtype: int"""import heapqfrom collections import defaultdictl = defaultdict(list)for u,v,n in edges:l[u].append([v,n])l[v].append([u,n])used = {}visited = set()ans = 0pq = [(0,0)]heapq.heapify(pq)while pq and pq[0][0]<=maxMoves:step,u = heapq.heappop(pq)if u in visited:continuevisited.add(u)ans +=1for v,nodes in l[u]:if nodes+step+1<=maxMoves and v not in visited:heapq.heappush(pq,[nodes+step+1,v])used[(u,v)] = min(nodes,maxMoves-step)for u,v,n in edges:ans += min(n,used.get((u,v),0)+used.get((v,u),0))return ans

11/29 1758. 生成交替二进制字符串的最少操作数

遍历一遍 分别记录两种情况的操作次数

def minOperations(s):""":type s: str:rtype: int"""ans = [0,0]for i,c in enumerate(s):if i%2==0:if c=="1":ans[0]+=1else:ans[1]+=1else:if c=="0":ans[0]+=1else:ans[1]+=1return min(ans)

11/30 895. 最大频率栈

m[val]记录val的频率
fre[num] 记录出现num次的元素

from collections import defaultdict
class FreqStack(object):def __init__(self):self.m = defaultdict(int)self.fre = defaultdict(list)self.maxfre = 0def push(self, val):""":type val: int:rtype: None"""self.m[val]+=1self.fre[self.m[val]].append(val)self.maxfre = max(self.maxfre,self.m[val])def pop(self):""":rtype: int"""v = self.fre[self.maxfre].pop()self.m[v]-=1if len(self.fre[self.maxfre])==0:self.maxfre-=1return v

12/1 1779. 找到最近的有相同 X 或 Y 坐标的点

遍历依次寻找

def nearestValidPoint(x, y, points):""":type x: int:type y: int:type points: List[List[int]]:rtype: int"""def dis(i,j):return abs(x-i)+abs(y-j)d = 20000ans = -1for ind,p in enumerate(points):i,j=p[0],p[1]if i==x or j==y:tmp = dis(i,j)if tmp

12/2 1769. 移动所有球到每个盒子所需的最小操作数

若已知转移到i位置需要ans[i]=x次 i及左侧[0~i]间有a个球 右侧i+1到最后有b个球
那么对于i+1的位置而言 所有[0~i]需要多走1步 所有[i+1~n]可以少走一步
所以ans[i+1]=ans[i]+a-b

def minOperations(boxes):""":type boxes: str:rtype: List[int]"""l,r,cur = int(boxes[0]),0,0n = len(boxes)for i in range(1,n):if boxes[i]=='1':r+=1cur +=ians = [cur]for i in range(1,n):cur += l-rif boxes[i]=='1':l+=1r-=1ans.append(cur)return ans

12/3 1796. 字符串中第二大的数字

记录最大和第二大的数字


def secondHighest(s):""":type s: str:rtype: int"""a,b=-1,-1for c in s:if c.isdigit():v = int(c)if v>a:a,b=v,aelif vb:b =vreturn b

12/4


相关内容

热门资讯

中国银行招标结果:中国银行北京... 证券之星消息,根据天眼查APP-财产线索数据整理,中国银行股份有限公司5月24日发布《中国银行北京庄...
原创 A... "上下同欲者胜。"——《孙子兵法》 “厂家那边又逼我压两百万的货,可库存早都冒了。” 凌晨两点...
原创 “... 全款买房”和贷款30年,差别到底有多大?曹德旺一句话点醒了很多人 前阵子,一个朋友把看了半年的房子终...
云英谷科技登陆港交所:AI终端... 5月27日,云英谷科技股份有限公司(股票简称:云英谷科技,股票代码:3310.HK)成功登陆港交所主...
京东集团与三一集团签订战略合作... 5月25日,京东集团与三一集团在北京签署战略合作协议。京东集团SEC副主席、京东集团CEO许冉与三一...
青岛的朋友看过来:黄金回收我跑... 前阵子想把家里一些旧金饰处理掉,在青岛问了几家回收黄金的地方。今天就跟大家随便聊聊我打听、上门、对比...
武汉有闲置贵重金属变现需求该怎... 不少有黄金回收需求的用户不知道该如何挑选合适的服务机构,其实只要从资质、专业度、服务能力、口碑几个维...
业绩再度下滑,石药集团一季度归... 图片来源:视觉中国 蓝鲸新闻5月27日讯(记者 屠俊)5月27日午间,石药集团(01093.HK)公...
蚂蚁CEO韩歆毅:在Agent... 【CNMO科技消息】近日,蚂蚁集团CEO韩歆毅在演讲中,系统分享了关于智能体经济和AI支付的底层思考...
Buff叠满!芯片,双重利好!... 芯片领域,传来两则大消息! 一是5月27日有媒体报道称,台积电3纳米制程下半年将涨价15%,明年或再...
“全球正面临第五次油价冲击” 日本央行行长植田和男27日在东京说,自上世纪70年代以来,全球多次经历能源价格急剧上涨,当前全球正面...
白酒股,直线拉升!600779... 【导读】白酒股终于涨了 中国基金报记者 泰勒 大家好,花有重开日,人无再少年。就在刚刚,低迷许久的“...
河北地区闲置名酒如何合规变现 闲置名酒处置的行业现状 近年来随着居民酒类收藏意识的逐步提升,不少家庭都存有不同品类的年份名酒,当...
重磅!长鑫科技科创板IPO获通... 5月27日消息,长鑫科技科创板IPO获上交所上市委会议通过。
东方基金开展“一司一省一高校”... 为深入贯彻落实新“国九条”以及《推动公募基金高质量发展行动方案》的核心要求,积极响应证监会对于金融机...
那句「都是卖猪食的」,为什么你... 你大概也笑了一下。 最近有句话在网上传疯了,说字节的副总裁回怼腾讯的“短视频像猪食”,撂了一句“都是...
2026 年小红书多账号管理工... 摘要 2026 年小红书矩阵运营成品牌获客主流,但账号风控严、消息分散、转化低效等痛点突出。本文基...
打着高知女性旗号割韭菜,“五个... 出品丨搜狐财经 作者丨柴鑫洋 编辑丨李文贤 你被“五个女博士”种草过吗? 打着高知女性旗号,却做着低...
A股董责险渗透率破32%,海南... 开栏语: 保险是经济的“减震器”,但保险条款复杂晦涩,犹如海下暗礁。 即日起,海财经·证券导报开设“...
奥尼电子:49万股限制性股票将... 5月27日,奥尼电子(301189)发布公告,2025年限制性股票激励计划第一个归属期归属结果已确定...