LeetCode 每日一题 2023/3/20-2023/3/26

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


目录

      • 3/20 1012. 至少有 1 位重复的数字
      • 3/21 2469. 温度转换
      • 3/22 1626. 无矛盾的最佳球队
      • 3/23 1630. 等差子数组
      • 3/24 1032. 字符流
      • 3/25
      • 3/26


3/20 1012. 至少有 1 位重复的数字

寻找[1…n]中没有重复数字的个数 只要将其去除即是答案
用十位二进制mask 表示0~9是否出现过
将n的各位数字放入nums中 从低位到高位
从n的高位开始依次探索
limit表示当前位是否有限制
若无限制及改为不是当前有数值的最高位则可以为0~9 否则不能超过该位原有数值
lead=True表示比该位高的位数都为0

def numDupDigitsAtMostN(n):
    """
    :type n: int
    :rtype: int
    """
    global mem
    mem = {}
    nums = []
    while n:
        nums.append(n%10)
        n//=10
    def dfs(loc,mask,lead,limit):
        global mem
        if (loc,mask,lead,limit) in mem:
            return mem[(loc,mask,lead,limit)]
        if loc<0:
            return int(lead)^1
        up = nums[loc] if limit else 9
        ans = 0
        for i in range(up+1):
            if mask>>i &1:
                continue
            if i==0 and lead:
                ans += dfs(loc-1,mask,lead,limit and i==up)
            else:
                ans += dfs(loc-1,mask|1<<i,False,limit and i==up)
        mem[(loc,mask,lead,limit)] = ans
        return ans
    return n-dfs(len(nums)-1,0,True,True)



3/21 2469. 温度转换

按规则转换

def convertTemperature(celsius):
    """
    :type celsius: float
    :rtype: List[float]
    """
    return [celsius+273.15,celsius*1.8+32.0]



3/22 1626. 无矛盾的最佳球队

将队员按年级从小到大排序
如果年纪相同 按分数从小到大排序 num
动态规划
dp[j]代表以j为最后一名球员时的最大分数
只要j>i说明j的年纪不小于i
且j的分数大于i
必定可以dp[j] = max(dp[j],dp[i]+num[j][1])

def bestTeamScore(scores, ages):
    """
    :type scores: List[int]
    :type ages: List[int]
    :rtype: int
    """
    n = len(scores)
    num = sorted(zip(ages,scores))
    dp = [0]*n
    ans = 0
    for j in range(n):
        for i in range(j):
            if num[j][1]>=num[i][1]:
                dp[j] = max(dp[i],dp[j])
        dp[j] += num[j][1]
        ans = max(ans,dp[j])
    return ans



3/23 1630. 等差子数组

遍历m种情况
对每种情况进行判断

def checkArithmeticSubarrays(nums, l, r):
    """
    :type nums: List[int]
    :type l: List[int]
    :type r: List[int]
    :rtype: List[bool]
    """
    m = len(l)
    ans = [False]*m
    for i in range(m):
        li = nums[l[i]:r[i]+1]
        minv,maxv = min(li),max(li)
        if minv==maxv:
            ans[i] = True
            continue
        if (maxv-minv)%(r[i]-l[i])>0:
            continue
        diff = (maxv-minv)//(r[i]-l[i])
        tag = True
        mem=set()
        for j in range(l[i],r[i]+1):
            if (nums[j]-minv)%diff>0:
                tag = False
                break
            tmp = nums[j]-minv
            if tmp in mem:
                tag = False
                break
            mem.add(tmp)
        if tag:
            ans[i] =tag
    return ans



3/24 1032. 字符流

words中长度最大为max 只保留最近max个字符
记录words中的字符长度到len中
l中记录最近max个字符 一次考虑len中长度的后缀是否在words中

class StreamChecker(object):

    def __init__(self, words):
        """
        :type words: List[str]
        """
        self.s = set(words)
        self.max = max([len(w) for w in words])
        self.len = list(set([len(w) for w in words]))
        self.l = ""


    def query(self, letter):
        """
        :type letter: str
        :rtype: bool
        """
        if len(self.l)==self.max:
            self.l = self.l[1:]
        self.l += letter
        n = len(self.l)
        for le in self.len:
            if self.l[n-le:] in self.s:
                return True
        return False



3/25





3/26





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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT来了你慌了吗?

文章目录一、ChatGPT是什么&#xff1f;一、ChatGPT到底多强大&#xff1f;三、各平台集成了ChatGPT插件&#xff1a;四、ChatGPT能否取代程序员&#xff1f;一、ChatGPT是什么&#xff1f; ChatGPT&#xff08;全名&#xff1a;Chat Generative Pre-trained Transformer&…

快速上手vue elementUI好看的登录界面

这是一个非常非常适合新手的vue登录界面&#xff0c;总体来说美观大气&#xff0c;axios那部分没有发&#xff0c;有需要的大家可以自己进行二次开发&#xff0c;继续编写。 用到了技术栈有 vue/cli 5.07 element-ui 2.15.9 适合入门级新手&#xff0c;展示下页面 emmm验证码…

【Spring Cloud Alibaba】2.服务注册与发现(Nacos安装)

文章目录环境要求简介安装Nacos源码安装Docker安装数据库配置访问服务我们要搭建一个Spring Cloud Alibaba项目就绕不开Nacos&#xff0c;阿里巴巴提供的Nacos组件&#xff0c;可以提供服务注册与发现和分布式配置服务&#xff0c;拥有着淘宝双十一十几年的流量经验&#xff0c…

关于docker mysql 请求速度慢的问题

一&#xff0c;问题描述&#xff1a; 请求mysql 数据库&#xff0c;请求速度很慢&#xff0c;需要六七秒&#xff0c;数据量也不大。使用的是docker 容器启动的mysql 二&#xff0c;问题原因&#xff1a; 网上说的是因为MySQL的dns导致&#xff0c;我实测也是有效果的&#xf…

Linux:主机USB设备驱动简析

文章目录1. 前言2. 分析背景3. USB 总线硬件拓扑4. USB 协议栈概览4.1 Linux USB 子系统概览4.2 USB外设(如U盘)固件基础5. Linux USB 子系统初始化6. Linux USB 主机控制器(HCD) 驱动6.1 USB 主机控制器驱动初始化6.2 USB 主机控制器设备对象注册和驱动加载7. Linux USB 设备驱…

【亲测搭建成功】模拟无网络情况下安装K8S集群和相关组件

目录标题 前言准备工作:k8s集群:先构思网络拓扑图划分网络资源服务器开始搭建服务器操作系统初始化1.关闭防火墙2. 关闭selinux3. 修改网卡配置5.系统模块配置nacos 高可用mysql双主+双从rockemq 集群nginx高可用(双主)Redis 双主、双从minio分布式文件存储前言 最近项目上…

vulnhub Noob渗透笔记

靶机下载地址:https://www.vulnhub.com/entry/noob-1,746/ kali ip 信息收集 依旧我们先使用nmap扫描确定一下靶机ip nmap -sP 192.168.20.0/24发现靶机ip 扫描开放端口 nmap -A -p 1-65535 192.168.20.129 开放21 80 55077端口 先尝试使用匿名账号登录ftp,账户anonym…

linux系统运维面试题大全(137道题)

linux系统运维面试题大全 1、 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数&#xff1f; 查看物理cup&#xff1a; cat /proc/cpuinfo|grep -c ‘physical id’ 查看每颗cup核数 cat /proc/cpuinfo|grep -c ‘processor’ 2、查看系统负载有两个常用的命令&#xff0c;…

STM32 ADC+定时器+DMA+FFT

本次实现的功能为单片机DAC输出一个正弦波&#xff0c;然后ADC定时采样用DMA输出&#xff0c;最后对DAC输出的波形进行FFT。单片机STM32F103ZET6内部时钟一、配置ADCADC端口为PA1&#xff0c;采用DMA输出&#xff0c;定时器3触发定时器时钟64M&#xff0c;分频后为102.4KHzADC采…

Scrapy的callback进入不了回调方法

一、前言 有的时候&#xff0c;Scrapy的callback方法直接被略过了&#xff0c;不去执行其中的回调方法&#xff0c;可能排查好久都排查不出来&#xff0c;我来教大家集中解决方法。 yield Request(urlurl, callbackself.parse_detail, cb_kwargs{item: item})二、解决方法 1…

基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建

基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建 文章目录基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建一、环境搭建1、虚拟机Ubuntu系统安装2、docker镜像导入3、下载EDK2源码4、容器创建和代码编译4.1 容器创建4.2 代码编译5、运行QEMU_EFI.fd6、VSCODE配置7、日常工作8、不同项目的…

数据结构——二叉树与堆

作者&#xff1a;几冬雪来 时间&#xff1a; 内容&#xff1a;二叉树与堆内容讲解 目录 前言&#xff1a; 1.完全二叉树的存储&#xff1a; 2.堆的实现&#xff1a; 1.创建文件&#xff1a; 2.定义结构体&#xff1a; 3.初始化结构体&#xff1a; 4.扩容空间与扩容…

学习黑客十余年,如何成为一名高级的安全工程师?

1. 前言 说实话&#xff0c;一直到现在&#xff0c;我都认为绝大多数看我这篇文章的读者最后终究会放弃&#xff0c;原因很简单&#xff0c;自学终究是一种适合于极少数人的学习方法&#xff0c;而且非常非常慢&#xff0c;在这个过程中的变数过大&#xff0c;稍有不慎&#…

win32api之文件系统管理(七)

什么是文件系统 文件系统是一种用于管理计算机存储设备上文件和目录的机制。文件系统为文件和目录分配磁盘空间&#xff0c;管理文件和目录的存储和检索&#xff0c;以及提供对它们的访问和共享&#xff0c;以下是常见的两种文件系统&#xff1a; NTFSFAT32磁盘分区容量2T32G…

C/C++之while(do-while)详细讲解

目录 while循环有两个重要组成部分&#xff1a; while 是一个预测试循环 无限循环 do-while 循环 while循环有两个重要组成部分&#xff1a; 进行 true 值或 false 值判断的表达式&#xff1b;只要表达式为 true 就重复执行的语句或块&#xff1b;图 1 显示了 while 循环的…

GIS开源库GEOS库学习教程(一):编译及示例代码

1、介绍 GEOS库是一个集合形状的拓扑关系操作实用库&#xff0c;简单得说&#xff0c;就是判断两个几何形状之间关系和对两个几何形状进行操作以形成新的几何形状的库。GEOS是仿照JTS库做的&#xff0c;是JTS的C实现。下面是JTS Topology Suite (JTS) 拓扑运算函数库的介绍&…

Android 自定义View 之 Mac地址输入框

Mac地址输入框前言正文一、什么是View?二、什么是自定义View三、自定义View① 构造方法② XML样式③ 测量④ 绘制1. 绘制方框2. 绘制文字⑤ 输入1. 键盘布局2. 键盘接口3. 键盘弹窗4. 显示键盘5. 处理输入四、使用自定义View五、源码前言 在日常工作开发中&#xff0c;我们时长…

Ubuntu下载、配置、安装和编译opencv

1 安装相关依赖安装opencv前&#xff0c;需要先准备好编译器、相关依赖sudo apt-get install gcc g cmake vim sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev sudo apt-get install libgtk2.0-…

MySQL数据库实现主从同步

安装MySQL数据库8.0.32 前言 今天来学习数据库主从同步的原理及过程&#xff0c;数据库主要是用来存储WEB数据&#xff0c;在企业当中是极为重要的&#xff0c;下面一起来看下。 1.1 数据库做主从的目的 MySQL主从复制在中小企业&#xff0c;大型企业中广泛使用&#xff0c…

类和对象 - 下

本文已收录至《C语言》专栏&#xff01; 作者&#xff1a;ARMCSKGT 目录 前言 正文 初始化列表 成员变量的定义与初始化 初始化列表的使用 变量定义顺序 explicit关键字 隐式类型转换 自定义类型隐式转换 explicit 限制转换 关于static static声明类成员 友元 友…
最新文章