当前位置: 首页 > article >正文

LeetCode 每日一题 2025/2/17-2025/2/23

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


目录

      • 2/17 1287. 有序数组中出现次数超过25%的元素
      • 2/18 2080. 区间内查询数字的频率
      • 2/19 624. 数组列表中的最大距离
      • 2/20 2595. 奇偶位数
      • 2/21 2209. 用地毯覆盖后的最少白色砖块
      • 2/22 2506. 统计相似字符串对的数目
      • 2/23 1206. 设计跳表


2/17 1287. 有序数组中出现次数超过25%的元素

存在这个元素至少出现num次 那么这个元素必定会出现在位置0,num,2*num…处
找到这些位置 寻找该位置的值出现次数

def findSpecialInteger(arr):""":type arr: List[int]:rtype: int"""import bisectn=len(arr)num=n//4+1for i in range(0,n,num):if bisect.bisect_right(arr, arr[i])-bisect.bisect_left(arr, arr[i])>=num:return arr[i]return -1

2/18 2080. 区间内查询数字的频率

使用一个map m[value]存放数值x出现的位置
求取m[value]中有多少个位置在[left,right]内
分别求0left,0right内位置个数 相减即可

from collections import defaultdict
class RangeFreqQuery(object):def __init__(self, arr):""":type arr: List[int]"""self.m = defaultdict(list)for i,v in enumerate(arr):self.m[v].append(i)def query(self, left, right, value):""":type left: int:type right: int:type value: int:rtype: int"""li = self.m[value]if len(li)==0:return 0if li[0]>right or li[-1]<left:return 0ansl,ansr=0,0if left<=li[0]:ansl = 0else:l,r = 0,len(li)while l<=r:mid = l+(r-l)//2if li[mid]==left:l = midbreakelif li[mid]>left:r = mid-1else:l = mid+1ansl = lif right>=li[-1]:ansr = len(li)-1else:l,r = 0,len(li)while l<=r:mid = l+(r-l)//2if li[mid]==right:r = midbreakelif li[mid]>right:r = mid-1else:l = mid+1ansr = rif ansr<ansl:return 0return ansr-ansl+1

2/19 624. 数组列表中的最大距离

遍历每个数组 记录最小值 最大值

def maxDistance(arrays):""":type arrays: List[List[int]]:rtype: int"""mi,ma=arrays[0][0],arrays[0][-1]ans = 0for i in range(1,len(arrays)):curmi,curma=arrays[i][0],arrays[i][-1]ans=max(ans,abs(ma-curmi),abs(curma-mi))mi=min(mi,curmi)ma=max(ma,curma)return ans

2/20 2595. 奇偶位数

依次判断当前最低位是否为一 判断好后每次除以2

def evenOddBit(n):""":type n: int:rtype: List[int]"""cur = 0even,odd=0,0while n:if n%2==1:if cur%2:odd+=1else:even+=1cur+=1n//=2return [even,odd]

2/21 2209. 用地毯覆盖后的最少白色砖块

dp[i][j]表示前i个砖用了j个地毯后最少的白色砖块

def minimumWhiteTiles(floor, numCarpets, carpetLen):""":type floor: str:type numCarpets: int:type carpetLen: int:rtype: int"""n=len(floor)dp = [[float("inf")] * (numCarpets+1) for _ in range(n+1)]for j in range(numCarpets+1):dp[0][j]=0for i in range(1,n+1):dp[i][0] = dp[i-1][0]+(1 if floor[i-1]=='1' else 0)for i in range(1,n+1):for j in range(1,numCarpets+1):dp[i][j]=dp[i-1][j]+(1 if floor[i-1]=='1' else 0)dp[i][j]=min(dp[i][j],dp[max(0,i-carpetLen)][j-1])return dp[n][numCarpets]

2/22 2506. 统计相似字符串对的数目

使用26位0,1 记录组成字符串的字母出现情况
计算相同字母的字符串个数能够组成的对数

def similarPairs(words):""":type words: List[str]:rtype: int"""tag={}for w in words:cur = 0for c in w:cur |= (1<<(ord(c)-ord('a')))tag[cur] = tag.get(cur,0)+1ans = 0for v in tag.values():ans += v*(v-1)//2return ans

2/23 1206. 设计跳表

参考 https://leetcode.cn/problems/design-skiplist/solution/she-ji-tiao-biao-by-leetcode-solution-e8yh/
将每个数字看作一个节点 节点最多有MAX_LEVAL层
如果对于某一层 该节点存在 则该位置指向下一个存在的节点
random_level 随机决定该节点层数


import random
MAX_LEVAL = 32
PRO = 0.25
def random_level():lv = 1while lv<MAX_LEVAL and random.random()<PRO:lv+=1return lvclass Node:__slots__ = ['val','forward']def __init__(self,val,maxlev=MAX_LEVAL):self.val = valself.forward = [None]*maxlevclass Skiplist(object):def __init__(self):self.head = Node(-1)self.level = 0def search(self, target):""":type target: int:rtype: bool"""cur = self.headfor i in range(self.level-1,-1,-1):while cur.forward[i] and cur.forward[i].val<target:cur = cur.forward[i]cur = cur.forward[0]if cur and cur.val==target:return Truereturn Falsedef add(self, num):""":type num: int:rtype: None"""new = [self.head]*MAX_LEVALcur = self.headfor i in range(self.level-1,-1,-1):while cur.forward[i] and cur.forward[i].val<num:cur = cur.forward[i]new[i] = curlv = random_level()self.level = max(self.level,lv)newnode = Node(num,lv)for i in range(lv):newnode.forward[i] = new[i].forward[i]new[i].forward[i] = newnodedef erase(self, num):""":type num: int:rtype: bool"""new = [self.head]*MAX_LEVALcur = self.headfor i in range(self.level-1,-1,-1):while cur.forward[i] and cur.forward[i].val<num:cur = cur.forward[i]new[i] = curcur = cur.forward[0]if not cur or cur.val!=num:return Falsefor i in range(self.level):if new[i].forward[i]!=cur:breaknew[i].forward[i] = cur.forward[i]while self.level>1 and not self.head.forward[self.level-1]:self.level-=1return True

相关文章:

LeetCode 每日一题 2025/2/17-2025/2/23

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 2/17 1287. 有序数组中出现次数超过25%的元素2/18 2080. 区间内查询数字的频率2/19 624. 数组列表中的最大距离2/20 2595. 奇偶位数2/21 2209. 用地毯覆盖后的最少白色砖块…...

《零基础学会!如何用 sql+Python 绘制柱状图和折线图,数据可视化一看就懂》

在数据驱动的时代&#xff0c;MySQL 是最常用的关系型数据库管理系统之一&#xff0c;广泛应用于各类数据存储和处理场景。数据分析的过程不仅仅是收集数据&#xff0c;还包括数据的清洗、转换、查询以及最终的报告和可视化。在本文中&#xff0c;我们将通过实际案例来介绍如何…...

【算法系列】归并排序详解

文章目录 归并排序详解1. 基本原理1.1 分治法策略1.2 归并排序步骤1.3 图解示例 2. 时间复杂度与空间复杂度2.1 时间复杂度2.2 空间复杂度 3. 稳定性4. Java 实现示例5. 归并排序的优点与缺点5.1 优点5.2 缺点 6. 总结 归并排序详解 归并排序&#xff08;Merge Sort&#xff0…...

Vue的项目创建以及项目目录与组合式API

一.创建Vue 1.Vue-CLI:创建Vue的脚手架工具 2.Create-vue&#xff1a;是Vue官方提供的脚手架之一,底层采用官方自主研发的vite,快捷&#xff0c;开发方便。 3.准备工作:系统中需要安装nodejs环境&#xff0c;在该环境中提供npm包管理器 4.创建Vue项目的命令:npm init vuela…...

ubuntu-server 安装 navidia 显卡驱动

资料 https://juejin.cn/post/7362562720708280332 过程 ubuntu-drivers devices 选择ubuntu-server安装 rootroot:~# ubuntu-drivers devices udevadm hwdb is deprecated. Use systemd-hwdb instead. udevadm hwdb is deprecated. Use systemd-hwdb instead. udevadm hwd…...

【学习笔记】计算机网络(四)

第4章 网络层 文章目录 第4章 网络层4.1 网络层的几个重要概念4.1.1 网络层提供的两种服务虚电路服务&#xff08;Virtual Circuit Service&#xff09;数据报服务&#xff08;Datagram Service&#xff09; 4.1.2 网络层的两个层面 4.2 网际协议 IP - IPv44.2.1 虚拟互连网络4…...

DeepSeek-R1:通过强化学习激励大语言模型的推理能力

摘要 本文介绍了我们的第一代推理模型&#xff0c;DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是通过大规 模强化学习&#xff08;RL&#xff09;训练的模型&#xff0c;在没有使用监督微调&#xff08;SFT&#xff09;这个前置步骤的情况下&#xff0c;展示了卓越的推…...

Linux运维——网络管理

Linux网络管理 一、Linux网络应用要点二、命令常见用法2.1、curl2.1.1、发送GET请求2.1.2、发送POST请求2.1.3、设置请求头2.1.4、处理cookies2.1.5、处理重定向2.1.6、调试和详细信息2.1.7、使用代理2.1.8、文件上传2.1.9、其它常用选项2.1.10、综合示例 2.2、wget2.2.1、基本…...

洛谷 P8705:[蓝桥杯 2020 省 B1] 填空题之“试题 E :矩阵” ← 卡特兰数

【题目来源】 https://www.luogu.com.cn/problem/P8705 【题目描述】 把 1∼2020 放在 21010 的矩阵里。要求同一行中右边的比左边大&#xff0c;同一列中下边的比上边的大。一共有多少种方案? 答案很大&#xff0c;你只需要给出方案数除以 2020 的余数即可。 【答案提交】 …...

基于Flink SQL实现7天用户行为风险识别,结合滚动窗口预聚合与CEP复杂事件处理技术,根据用户7天的动作,包括交易,支付,评价等行为,识别用户的风险等级

一、数据建模与预聚合 1. 数据源定义 CREATE TABLE user_actions (user_id STRING,event_time TIMESTAMP(3),action_type STRING, -- 交易/支付/评价amount DOUBLE,status STRING, -- 交易状态&#xff08;成功/失败&#xff09;review_score INT, -- 评价分数&#x…...

【无标题】网络安全公钥密码体制

第一节 网络安全 概述 一、基本概念 网络安全通信所需要的基本属性“ 机密性&#xff1b;消息完整性&#xff1b;可访问性与可用性&#xff1b;身份认证。 二、网络安全威胁 窃听&#xff1b;插入&#xff1b;假冒&#xff1b;劫持&#xff1b;拒绝服务Dos和分布式拒绝服务…...

【含开题报告+文档+PPT+源码】基于SpringBoot的进销存管理系统的设计与实现

开题报告 本文提出并研发了一款基于Spring Boot框架构建的进销存管理系统&#xff0c;该系统集成了全方位的企业运营管理功能&#xff0c;涵盖了用户登录验证、系统公告管理、员工信息与权限管理、物料全流程&#xff08;采购入库、销售出库、退货处理&#xff09;控制、部门组…...

Linux-SaltStack配置

文章目录 SaltStack配置 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Linux专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2025年02月24日20点51分 SaltStack配置 SaltStack 中既支持SSH协议也支持我们的一个客户端 #获取公钥&#xff08;…...

DeepSeek-OpenSourceWeek-第二天-DeepEP

DeepSeek正在进行“开源周”活动,在第二天推出了DeepEP,这是一个面向混合专家(MoE)模型训练和推理的开源通信库。DeepSeek此前的成果已令人印象深刻,此次开源关键组件,体现了其对透明度、社区合作以及推动AI进步的决心,通过5个代码库(已发布2个)来展示这一承诺。 第一…...

事务的4个特性和4个隔离级别

事务的4个特性和4个隔离级别 1. 什么是事务2. 事务的ACID特性2.1 原子性2.2 一致性2.3 持久性2.4 隔离性 3. 事务的创建4. 事务并发时出现的问题4.1 DIRTY READ 脏读4.2 NON - REPEATABLR READ 不可重复读4.3 PHANTOM READ 幻读 5. 事务的隔离级别5.1 READ UNCOMMITTED 读未提交…...

对计算机中缓存的理解和使用Redis作为缓存

使用Redis作为缓存缓存例子缓存的引入 Redis缓存的实现 使用Redis作为缓存 缓存 ​什么是缓存&#xff0c;第一次接触这个东西是在考研学习408的时候&#xff0c;计算机组成原理里面学习到Cache缓存&#xff0c;用于降低由于内存和CPU的速度的差异带来的延迟。它是在CPU和内存…...

vue3 下载文件 responseType-blob 或者 a标签

在 Vue 3 中&#xff0c;你可以使用 axios 或 fetch 来下载文件&#xff0c;并将 responseType 设置为 blob 以处理二进制数据。以下是一个使用 axios 的示例&#xff1a; 使用 axios 下载文件 首先&#xff0c;确保你已经安装了 axios&#xff1a; npm install axios然后在你…...

SOME/IP-SD -- 协议英文原文讲解5

前言 SOME/IP协议越来越多的用于汽车电子行业中&#xff0c;关于协议详细完全的中文资料却没有&#xff0c;所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块&#xff1a; 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 5.1.2.5 S…...

lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并等。

入口类&#xff1a;exportPdf ​ package xcsy.qms.webapi.service;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.ibm.icu.text.RuleBasedNumberFormat; import com.lowa…...

MySQL undo log,redo log和bin log日志文件的生成时间点、层级归属、存储位置及生命周期详解

问题&#xff1a; 假如库名叫做A库&#xff0c;表名叫B表&#xff0c;undo log,redo log和bin log&#xff0c;这些日志文件的生成的时间点是什么&#xff1f;是在mysql的哪一层生成的&#xff1f;哪些文件是有buffer的&#xff1f;哪些日志文件是存在磁盘上的&#xff1f;哪些…...

吃一堑长一智

工作中经历&#xff0c;有感触记录下 故事一 以前在一家公司时&#xff0c;自己是一名开发人员&#xff0c;遇到问题请教领导解决方案&#xff0c;当时领导给了建议&#xff0c;后来上线后出问题了&#xff0c;背了锅。心里想的是领导说这样做的呀&#xff0c;为什么出问题还…...

DeepSeek基础之机器学习

文章目录 一、核心概念总结&#xff08;一&#xff09;机器学习基本定义&#xff08;二&#xff09;基本术语&#xff08;三&#xff09;假设空间&#xff08;四&#xff09;归纳偏好&#xff08;五&#xff09;“没有免费的午餐”定理&#xff08;NFL 定理&#xff09; 二、重…...

达梦有没有类似oerr的功能

在oracle 23ai的sqlplus中&#xff0c;直接看异常信息说明&#xff1a; 达梦没有此功能&#xff0c;但是可以造一个 cd /home/dmdba cat >err.sql<<eof set echo off set ver off set timing off set lineshow off set feedback off select * from V\$ERR_INFO wher…...

实战-网安

面试感受:网安公司前端实习 今天我有幸面试了一家网络安全公司的前端开发实习岗位,整个过程让我受益匪浅,也让我对未来的职业发展有了更清晰的认识。 首先,面试官非常专业且友好,整个面试氛围轻松但不失严谨。面试一开始,面试官简单介绍了公司背景和团队文化,让我对公…...

一文掌握Splash的详细使用

文章目录 1. 安装与启动 Splash1.1 使用 Docker 安装1.2 直接安装 2. 基本用法2.1 访问 Splash 界面2.2 使用 Splash 渲染页面2.3 使用 Lua 脚本 3. 高级用法3.1 处理 JavaScript3.2 截图与 PDF3.3 处理 AJAX 请求3.4 设置请求头3.5 处理 Cookies 4. 与 Scrapy 集成4.1 安装 Sc…...

从 Linux 服务器到前端到网关到后端业务逻辑的分析

前言 在现代 Web 应用程序的架构中&#xff0c;一个完整的请求处理流程涉及多个组件&#xff0c;涵盖了用户界面、服务器环境、网关层和后端业务逻辑。理解这一过程有助于优化系统性能、提高用户体验&#xff0c;并确保系统的可维护性和可扩展性。本文将详细分析从 Linux 服务…...

Java中的Stream API:从入门到实战

引言 在现代Java开发中&#xff0c;Stream API 是处理集合数据的强大工具。它不仅让代码更加简洁易读&#xff0c;还能通过并行处理提升性能。本文将带你从基础概念入手&#xff0c;逐步深入Stream API的使用&#xff0c;并通过实战案例展示其强大功能。 1. 什么是Stream API…...

【python随手记】——读取文本文件内容转换为json格式

文章目录 前言一、TXT文件转换为JSON数组1.txt文件内容2.python代码3.输出结果 二、TXT文件转换为JSON对象1.txt文件2.python代码3.输出结果 前言 场景&#xff1a;用于读取包含空格分隔数据的TXT文件&#xff0c;并将其转换为结构化JSON文件 一、TXT文件转换为JSON数组 1.tx…...

【蓝桥杯】第十五届省赛大学真题组真题解析

【蓝桥杯】第十五届省赛大学真题组真题解析 一、智能停车系统 1、知识点 &#xff08;1&#xff09;flex-wrap 控制子元素的换行方式 属性值有&#xff1a; no-wrap不换行wrap伸缩容器不够则自动往下换行wrap-reverse伸缩容器不够则自动往上换行 &#xff08;2&#xff0…...

MybatisPlus-扩展功能-枚举处理器

在Mybatis里有一个叫TypeHandler的类型处理器&#xff0c;我们常见的PO当中的这些成员变量的数据类型&#xff0c;它都有对应的处理器&#xff0c;因此它就能自动实现这些Java数据类型与数据库类型的相互转换。 它里面还有一个叫EnumOrdinalTypeHandler的枚举处理器&#xff0…...