LeetCode 每日一题 2024/9/16-2024/9/22

news2024/9/22 13:29:23

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


目录

      • 9/16 1184. 公交站间的距离
      • 9/17 815. 公交路线
      • 9/18 2332. 坐上公交的最晚时间
      • 9/19 2414. 最长的字母序连续子字符串的长度
      • 9/20 2376. 统计特殊整数
      • 9/21 2374. 边积分最高的节点
      • 9/22


9/16 1184. 公交站间的距离

先求总和total
从start向右到dest距离可以遍历得到x 从start向左到dest可以total-x

def distanceBetweenBusStops(distance, start, destination):
    """
    :type distance: List[int]
    :type start: int
    :type destination: int
    :rtype: int
    """
    n = len(distance)
    total = sum(distance)
    x = 0
    while start!=destination:
        x += distance[start]
        start = (start+1)%n
    return min(x,total-x)



9/17 815. 公交路线

m记录每个站拥有的公交线路
双向BFS 考虑站点可以坐的公交线路
mem记录已坐过的线路 乘坐同一条线路无意义
从起点、终点分别获取可以乘坐的公交线路 l1,l2
每次选取较少的情况考虑 len(l1)>len(l2)
如果坐到了同一条公交线必定可以到达公交线路所在站点 返回答案
统计线路中所有站点下一次能够乘坐的未使用公交线路 m[station]-mem

def numBusesToDestination(routes, source, target):
    """
    :type routes: List[List[int]]
    :type source: int
    :type target: int
    :rtype: int
    """
    if source == target:
        return 0
    from collections import defaultdict
    m = defaultdict(set)
    for i,stations in enumerate(routes):
        for station in stations:
            m[station].add(i)
            
    routes = [set(x) for x in routes]
            
    l1 = m[source]
    l2 = m[target]
    step = 0
    mem = set()
    while l1 and l2:
        if len(l1)>len(l2):
            l1,l2 = l2,l1
        step +=1
        tmp = set()
        for route in l1:
            if route in l2:
                return step
            if route in mem:
                continue
            mem.add(route)
            for station in routes[route]:
                tmp.update(m[station]-mem)
        l1 = tmp
            
    return -1
    



9/18 2332. 坐上公交的最晚时间

将公交、乘客到达时间排序
模拟乘客上车 num为当前车辆空位
如果最后一辆车num大于0 说明最后一班车有空位 从最后一般发车时刻往前找一个没有乘客的时刻
如果num为0 表示最后一班公交车无空位 要在最后一个上车乘客到达前到达

def latestTimeCatchTheBus(buses, passengers, capacity):
    """
    :type buses: List[int]
    :type passengers: List[int]
    :type capacity: int
    :rtype: int
    """
    buses.sort()
    passengers.sort()
    pos = 0
    
    for b in buses:
        num = capacity
        while num>0 and pos<len(passengers) and passengers[pos]<=b:
            num-=1
            pos+=1
    pos-=1
    ans = passengers[pos]
    if num>0:
        ans = buses[-1]
    while pos>=0 and passengers[pos]==ans:
        pos-=1
        ans-=1
    return ans



9/19 2414. 最长的字母序连续子字符串的长度

依次遍历 cur记录当前满足条件的字符串长度
如果当前字符s[i]比前一个字符字母序大1则满足条件 cur+1

def longestContinuousSubstring(s):
    """
    :type s: str
    :rtype: int
    """
    ans = 1
    cur = 1
    for i in range(1,len(s)):
        if ord(s[i])-ord(s[i-1])==1:
            cur+=1
        else:
            cur=1
        ans=max(ans,cur)
    return ans



9/20 2376. 统计特殊整数

dfs(i,mask,limit,num)
判断第i位及其之后数位的合法方案
使用10位二进制mask记录之前选过的数字集合
limit表示当前位数值选择是否受到限制
num表示i前是否已经填写数字

def countSpecialNumbers(n):
    """
    :type n: int
    :rtype: int
    """
    s=str(n)
    mem={}
    def dfs(i,mask,limit,num):
        if (i,mask,limit,num) in mem:
            return mem[(i,mask,limit,num)]
        if i==len(s):
            return 1 if num else 0
        ans = 0
        if not num:
            ans = dfs(i+1,mask,False,False)
        low = 0 if num else 1
        up = int(s[i]) if limit else 9
        for v in range(low,up+1):
            if mask>>v &1==0:
                ans += dfs(i+1,mask|(1<<v),limit and v==up, True)
        mem[(i,mask,limit,num)]=ans
        return ans
    return dfs(0,0,True,False)



9/21 2374. 边积分最高的节点

依次统计涉及到的节点分数
记录最高分数及其对应的节点

def edgeScore(edges):
    """
    :type edges: List[int]
    :rtype: int
    """
    ans = 0
    curv = 0
    m = {}
    for i,v in enumerate(edges):
        m[v] = m.get(v,0)+i
        if m[v]>curv or (m[v]==curv and v<ans):
            ans = v
            curv=m[v]
    return ans




9/22





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

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

相关文章

构建未来企业的理论基石:业务能力建模指南的深度解析与战略实施框架

数字化转型已经成为全球企业的战略焦点&#xff0c;在这个过程中&#xff0c;如何有效地将复杂的业务需求、技术架构和市场变化结合&#xff0c;形成具备长期竞争力的企业能力框架&#xff0c;是企业成败的关键。《业务能力指南》提供了一套经过验证的理论体系&#xff0c;帮助…

数字图像面积计算一般方法及MATLAB实现

一、引言 在数字图像处理中&#xff0c;经常需要获取感兴趣区域的面积属性&#xff0c;下面给出图像处理的一般步骤。 1.读入的彩色图像 2.将彩色图像转化为灰度图像 3.灰度图像转化为二值图像 4.区域标记 5.对每个区域的面积进行计算和显示 二、程序代码 %面积计算 cle…

《COMMA: Co-articulated Multi-Modal Learning》中文校对版

系列论文研读目录 文章目录 系列论文研读目录摘要导言相关工作视觉语言模型提示学习视觉语言模型中的提示学习 方法准备工作提议方法 实验基准设定基础到新的概括跨数据集传输消融实验 结论 摘要 经过预训练的大规模视觉语言模型&#xff08;如CLIP&#xff09;已经在一系列下…

PyQt5 导入ui文件报错 AttributeError: type object ‘Qt‘ has no attribute

问题描述&#xff1a; 利用 PyQt5 编写可视化界面是较为普遍的做法&#xff0c;但是使用全新UI版本的 Pycharm 修改之前正常的UI文件时&#xff0c;在没有动其他代码的情况下发现出现以下报错 AttributeError: type object Qt has no attribute Qt::ContextMenuPolicy::Defaul…

BFS 解决多源最短路问题

文章目录 多源BFS542. 01 矩阵题目解析算法原理代码实现 1020. 飞地的数量题目解析算法原理 1765. 地图中的最高点题目解析算法原理代码实现 1162. 地图分析题目解析算法原理代码实现 多源BFS 单源最短路&#xff1a; 一个起点、一个终点 多源最短路&#xff1a; 可以多个起点…

Apache ZooKeeper 及 Curator 使用总结

1. 下载 官网地址&#xff1a;Apache ZooKeeper 点击下载按钮 选择对应的版本进行下载 2. 使用 1、解压 tar -zxf apache-zookeeper-3.9.2-bin.tar.gz2、复制配置文件&#xff0c;有一个示例配置文件 conf/zoo_sample.cfg&#xff0c;此文件不能生效&#xff0c;需要名称为…

LeetCode_sql_day31(1384.按年度列出销售总额)

目录 描述 1384.按年度列出销售总额 数据准备 分析 法一 法二 代码 总结 描述 1384.按年度列出销售总额 Product 表&#xff1a; ------------------------ | Column Name | Type | ------------------------ | product_id | int | | product_name | var…

将sqlite3移植到arm开发板上:

一、下载源代码 sqlite3网址&#xff1a;https://www.sqlite.org/download.html 下载&#xff1a;sqlite-autoconf-3460100.tar.gz 二、解压 在Linux家目录下创建一个sqlite3文件夹&#xff0c;将压缩包复制到该文件夹下&#xff0c;再在该目录下打开一个终端&#xff0c;执行…

【机器学习】--- 决策树与随机森林

文章目录 决策树与随机森林的改进&#xff1a;全面解析与深度优化目录1. 决策树的基本原理2. 决策树的缺陷及改进方法2.1 剪枝技术2.2 树的深度控制2.3 特征选择的优化 3. 随机森林的基本原理4. 随机森林的缺陷及改进方法4.1 特征重要性改进4.2 树的集成方法优化4.3 随机森林的…

7-50 畅通工程之局部最小花费问题 (kruskal)

输入样例: 4 1 2 1 1 1 3 4 0 1 4 1 1 2 3 3 0 2 4 2 1 3 4 5 0输出样例: 3 代码&#xff1a; #include<iostream> #include<queue> using namespace std; const int N110; struct node{int x,y,w;bool operator <(const node &n1)const{if(wn1.w) retur…

4 html5 web components原生组件详细教程

web components 前面我们已经介绍过&#xff0c;这一期我们就来讲一讲具体用法和这其中的关键只是点&#xff1a; 1 基本使用 如果我们想实现一个封装的原生组件&#xff0c;那就离不开使用js去封装&#xff0c;这里主要就是基于HTMLElement这个类&#xff0c;去创建创建一个…

【HarmonyOS】深入理解@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化

【HarmonyOS】深入理解Observed装饰器和ObjectLink装饰器&#xff1a;嵌套类对象属性变化 前言 之前就Observed和ObjectLink写过一篇讲解博客【HarmonyOS】 多层嵌套对象通过ObjectLink和Observed实现渲染更新处理&#xff01; 其中就Observe监听类的使用&#xff0c;Object…

prometheus监控linux虚拟机

前提条件已安装好prometheus和grafana&#xff0c;如果未安装请移步到docker部署prometheus 安装部署Prometheus,docker安装grafana安装部署Grafana。 1.二进制部署node-exporter采集器 2.1 采集器node-exporter下载 链接&#xff1a;https://pan.baidu.com/s/1hDmckSSl5X36…

【算法】BFS系列之 拓扑排序

【ps】本篇有 3 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1&#xff09;课程表 .1- 题目解析 .2- 代码编写 2&#xff09;课程表 II .1- 题目解析 .2- 代码编写 3&#xff09;火星词典 .1- 题目解析 .2- 代码编写 一、算法简介 【补】图的基本概念 &#…

本地提权【笔记总结】

文章目录 服务命令at命令提权介绍适用版本复现 sc命令提权介绍适用版本复现 ps应用程序提权复现 进程注入进程迁移注入介绍条件复现 MSF自动化注入介绍getsystem原理 复现 MSF令牌窃取介绍复现 烂土豆提权介绍适用版本复现 UAC绕过介绍复现使用ask模块绕过使用bypassuac_sluihi…

谷歌的AI反击战:创始人谢尔盖·布林的回归与大模型组合的未来

近年来&#xff0c;随着AI技术的迅猛发展&#xff0c;尤其是ChatGPT等大语言模型的出现&#xff0c;全球科技格局正发生剧烈变化。作为曾经引领AI潮流的谷歌&#xff0c;在这场竞争中逐渐失去了领头羊的地位。然而&#xff0c;谷歌的创始人之一谢尔盖布林&#xff08;Sergey Br…

计算组合数

1.递推 #include<bits/stdc.h> #include<unordered_map> #include<unordered_set> using namespace std; #define int long long //可能会超时 #define PII pair<int,int> const int INF 0x3f3f3f3f, mod 1e9 7; const int N 2005; int a, b,n; …

手机自动化测试环境之夜神模拟器inspector部署验证

1、自动化测试环境部署_总览图检查表流程图 Python需要安装Appium-Python-Clicent去定位元素&#xff1b;Appium是一个中间的服务器&#xff0c;它需要依赖node.js&#xff0c;python的脚本通过appium和手机进行交互&#xff1b;手机app的环境都是java环境&#xff0c;先安装jd…

9、等保测评介绍

数据来源&#xff1a;9.等保测评介绍_哔哩哔哩_bilibili 信息系统等级测评 信息系统等级测评是测评机构依据国家信息安全等级保护制度的规定&#xff0c;按照相关管理规范和技术标准&#xff0c;对未涉及国家秘密的信息系统的安全等级保护状况进行检测评估的活动。 等级测评…

gitlab 的CI/CD (一)

前言 GitLab CI/CD 是一个内置在GitLab中的工具&#xff0c;用于通过持续方法进行软件开发&#xff1a; Continuous Integration (CI) 持续集成Continuous Delivery (CD) 持续交付Continuous Deployment (CD) 持续部署 持续集成的工作原理是将小的代码块推送到Git仓库…