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

LeetCode 每日一题 2023/1/23-2023/1/29

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


目录

      • 1/23 2303. 计算应缴税款总额
      • 1/24 1828. 统计一个圆中点的数目
      • 1/25 1632. 矩阵转换后的秩
      • 1/26 1663. 具有给定数值的最小字符串
      • 1/27 2309. 兼具大小写的最好英文字母
      • 1/28 1664. 生成平衡数组的方案数
      • 1/29 2315. 统计星号


1/23 2303. 计算应缴税款总额

根据收入依次查看每个层级

def calculateTax(brackets, income):""":type brackets: List[List[int]]:type income: int:rtype: float"""ans = 0.0pre = 0for up,p in brackets:if income > up:ans += (up-pre)*p*0.01else:ans += (income-pre)*p*0.01breakpre = upreturn ans

1/24 1828. 统计一个圆中点的数目

对于每个圆 跟每个点比较 点与圆心的距离小于等于半径 就在园内

def countPoints(points, queries):""":type points: List[List[int]]:type queries: List[List[int]]:rtype: List[int]"""ans = []for x,y,r in queries:num = 0for i,j in points:if (i-x)**2+(j-y)**2<=r*r:num+=1ans.append(num)return ans

1/25 1632. 矩阵转换后的秩

并查集 拓扑排序
官解 https://leetcode.cn/problems/rank-transform-of-a-matrix/solutions/2075052/ju-zhen-zhuan-huan-hou-de-zhi-by-leetcod-biw0/

class Solution:def matrixRankTransform(self, matrix: List[List[int]]) -> List[List[int]]:m, n = len(matrix), len(matrix[0])uf = UnionFind(m, n)for i, row in enumerate(matrix):num2indexList = defaultdict(list)for j, num in enumerate(row):num2indexList[num].append([i, j])for indexList in num2indexList.values():i1, j1 = indexList[0]for k in range(1, len(indexList)):i2, j2 = indexList[k]uf.union(i1, j1, i2, j2)for j in range(n):num2indexList = defaultdict(list)for i in range(m):num2indexList[matrix[i][j]].append([i, j])for indexList in num2indexList.values():i1, j1 = indexList[0]for k in range(1, len(indexList)):i2, j2 = indexList[k]uf.union(i1, j1, i2, j2)degree = Counter()adj = defaultdict(list)for i, row in enumerate(matrix):num2index = {}for j, num in enumerate(row):num2index[num] = (i, j)sortedArray = sorted(num2index.keys())for k in range(1, len(sortedArray)):i1, j1 = num2index[sortedArray[k - 1]]i2, j2 = num2index[sortedArray[k]]ri1, rj1 = uf.find(i1, j1)ri2, rj2 = uf.find(i2, j2)degree[(ri2, rj2)] += 1adj[(ri1, rj1)].append([ri2, rj2])for j in range(n):num2index = {}for i in range(m):num = matrix[i][j]num2index[num] = (i, j)sortedArray = sorted(num2index.keys())for k in range(1, len(sortedArray)):i1, j1 = num2index[sortedArray[k - 1]]i2, j2 = num2index[sortedArray[k]]ri1, rj1 = uf.find(i1, j1)ri2, rj2 = uf.find(i2, j2)degree[(ri2, rj2)] += 1adj[(ri1, rj1)].append([ri2, rj2])rootSet = set()ranks = {}for i in range(m):for j in range(n):ri, rj = uf.find(i, j)rootSet.add((ri, rj))ranks[(ri, rj)] = 1q = deque([[i, j] for i, j in rootSet if degree[(i, j)] == 0])while q:i, j = q.popleft()for ui, uj in adj[(i, j)]:degree[(ui, uj)] -= 1if degree[(ui, uj)] == 0:q.append([ui, uj])ranks[(ui, uj)] = max(ranks[(ui, uj)], ranks[(i, j)] + 1)res = [[1] * n for _ in range(m)]for i in range(m):for j in range(n):ri, rj = uf.find(i, j)res[i][j] = ranks[(ri, rj)]return resclass UnionFind:def __init__(self, m, n):self.m = mself.n = nself.root = [[[i, j] for j in range(n)] for i in range(m)]self.size = [[1] * n for _ in range(m)]def find(self, i, j):ri, rj = self.root[i][j]if [ri, rj] == [i, j]:return [i, j]self.root[i][j] = self.find(ri, rj)return self.root[i][j]def union(self, i1, j1, i2, j2):ri1, rj1 = self.find(i1, j1)ri2, rj2 = self.find(i2, j2)if [ri1, rj1] != [ri2, rj2]:if self.size[ri1][rj1] >= self.size[ri2][rj2]:self.root[ri2][rj2] = [ri1, rj1]self.size[ri1][rj1] += self.size[ri2][rj2]else:self.root[ri1][rj1] = [ri2, rj2]self.size[ri2][rj2] += self.size[ri1][rj1]

1/26 1663. 具有给定数值的最小字符串

字典序最小则开头尽量多的a 结尾尽量多的z
初始设置n个a 如果达不到k 则在最后改一个为z 以此类推

def getSmallestString(n, k):""":type n: int:type k: int:rtype: str"""       ans = ["a"]*ndiff = k-nloc = n-1while diff>0:if diff<26:ans[loc]=chr(ord("a")+diff)diff = 0else:ans[loc] = "z"diff-=25loc-=1return "".join(ans)

1/27 2309. 兼具大小写的最好英文字母

l记录26个字母是否出现
从头遍历所有字母 记录所有出现的小写字母
第二次遍历 搜索所有大写字母 查看是否出现过小写字母
如果有则比较

def greatestLetter(s):""":type s: str:rtype: str"""l = [0]*26ans = ""for c in s:if c.islower():ind = ord(c)-ord("a")l[ind] = 1for c in s:if c.isupper():ind = ord(c)-ord("A")if l[ind]==1 and c>ans:ans = creturn ans

1/28 1664. 生成平衡数组的方案数

对于坐标i
分别使用odd1,odd2记录i之前奇数位之和 与i之后奇数位之和
同理even1,even2记录i前后偶数位之和
需要寻找odd1+even2=odd2+even1的i

def waysToMakeFair(nums):""":type nums: List[int]:rtype: int"""ans = 0odd1=odd2=even1=even2=0for i,num in enumerate(nums):if i%2:odd2+=numelse:even2+=numfor i,num in enumerate(nums):if i%2:odd2-=numelse:even2-=numif odd1+even2==odd2+even1:ans +=1if i%2:odd1+=numelse:even1+=numreturn ans

1/29 2315. 统计星号

标记是否在竖线对内

def countAsterisks(s):""":type s: str:rtype: int"""ans = 0tag = Falsefor c in s:if c=="|":tag = tag^1elif c=="*" and not tag:ans +=1return ans

相关文章:

LeetCode 每日一题 2023/1/23-2023/1/29

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录1/23 2303. 计算应缴税款总额1/24 1828. 统计一个圆中点的数目1/25 1632. 矩阵转换后的秩1/26 1663. 具有给定数值的最小字符串1/27 2309. 兼具大小写的最好英文字母1/28 16…...

Hadoop组件Yarn常见命令

Hadoop组件Yarn常见命令 一、概述 当我们不能使用ResourceManager Web UI时,就需要使用Yarn命令来处理问题。因此,我们需要了解如何使用yarn命令监控YARN集群。 Hadoop的yarn命令具有广泛的使用范围: 它可以帮助我们管理大量的MR、Spark、Flink任务。例如获取和杀死正在运…...

QT之事件系统

QT之事件系统1. 概述2. 事件的传递3. 事件类型4. 事件处理与事件过滤5. 自定义事件5.1 Demo6. 发送事件7. 参考1. 概述 在QT中&#xff0c;事件均派生自QEvent抽象类&#xff0c;事件可以由任何派生自QObject的子类实例接收和处理。它们与widget关联性极强。 2. 事件的传递 …...

Python中__init__.py文件深入理解

Python中文件__init__.py深入理解1. 简介1.1 模块&#xff08;Module&#xff09;和包&#xff08;Package&#xff09;的概念1.2 __init__.py文件简介2. __init__.py内容写法2.1 __init__.py文件内容2.2 __init__.py内容解释1. 简介 1.1 模块&#xff08;Module&#xff09;和…...

Jmeter之实现参数化的不同方式详解

参数化简介 定义&#xff1a;动态的获取、设置或生成数据&#xff0c;是一种由程序驱动代替人工驱动的数据设计方案&#xff0c;提高脚本的编写效率以及编写质量 适用场景&#xff1a;当提交的数据量较大时&#xff0c;每次修改太麻烦&#xff0c;可以使用参数化 本文介绍实现…...

Matlab论文插图绘制模板第76期—半对数刻度折线图(Semilogx和Semilogy)

在之前的文章中&#xff0c;分享了Matlab双对数刻度折线图的绘制模板&#xff1a; 进一步&#xff0c;再来分享一下半对数刻度折线图的绘制模板。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;Matlab论文插图绘制模板系列&#xff0c;旨在降低大家使用Matlab进行科研…...

【找工作】永善县政务服务管理局公开招聘5名公益性岗位人员

【找工作】永善县政务服务管理局公开招聘5名公益性岗位人员 为贯彻落实《中华人民共和国就业促进法》《就业服务和就业管理规定》&#xff0c;帮助有劳动能力和就业愿望的就业困难人员实现就业&#xff0c;永善县政务服务管理局拟向社会公开招聘公益性岗位人员5名&#xff0c;…...

【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用算法(拷贝和替换算法)

文章目录一、copy二、replace三、replace_if四、swap学习目标&#xff1a; 掌握常用的拷贝和替换算法 算法简介&#xff1a; copy // 容器内指定范围的元素拷贝到另一容器中replace // 将容器内指定范围的旧元素修改为新元素replace_if // 容器内指定范围满足条件的元素替换…...

C语言程序环境剖析——探究从.c到.exe之路

程序环境1.程序的翻译环境和执行环境2. 详解编译 链接2.1 翻译环境2.2 编译的三部分预编译编译汇编2.3链接3.运行环境1.程序的翻译环境和执行环境 在ANSI C的任何一种实现中&#xff0c;都存在两个不同的环境。 翻译环境&#xff0c;在这个环境中源代码被转换成可执行的机器指…...

【软件测试】8年资深测试总结出的测试学习经验,从入门到测试开发......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 测试圈子里有一句话…...

【博学谷学习记录】超强总结,用心分享|Spark的RDD算子分类

概念 RDD&#xff08;Resilient Distributed Dataset&#xff09;叫做弹性分布式数据集&#xff0c;是Spark中最基本的数据抽象&#xff0c;代表一个不可变、可分区、里面的元素可并行计算的集合&#xff0c;它是一种抽象的数据模型&#xff0c;本身并不存储数据&#xff0c;仅…...

云原生系列之使用 prometheus监控远程主机实战

文章目录前言一. 实验环境二. 安装node_exporter2.1 node_exporter的介绍2.2 node_exporter的安装三. 在prometheus服务端配置监控远程主机3.1 在server端配置拉取node的信息3.2 重启prometheus3.3 通过浏览器查看prometheus总结前言 大家好&#xff0c;又见面了&#xff0c;我…...

2023年地方两会政府工作报告汇总(各省市23年重点工作)

新年伊始&#xff0c;全国各地两会密集召开&#xff0c;各省、市、自治区2023年政府工作报告相继出炉&#xff0c;各地经济增长预期目标均已明确。相较于2022年&#xff0c;多地经济增长目标放缓&#xff0c;经济不断向“高质量”发展优化转型。今年是二十大后的开局之年&#…...

第一章 企业管理概论

目录 一、企业及其形式 二、企业管理概述 三、企业管理理论与实践的产生与发展 四、网络时代的企业环境 五、网络时代企业管理的变革 一、企业及其形式 1、企业的概念 企业以市场为导向&#xff0c;以价值增值作为经济活动的目的&#xff1b; 企业是从事商品生产和流通的…...

独立图片服务器有什么突出之处

服务器是网络中非常重要的设施&#xff0c;承载着不同流量的访问&#xff0c;这就要求服务器具有快速的吞吐量、高稳定性和高可靠性。独立图片服务器作为独立服务器的衍生品&#xff0c;在数据利用方面的应用可以为企业在数据处理和分析方面带来一场革命。本文就将介绍独立图片…...

Linux驱动开发基础__mmap

目录 1 引入 2 内存映射现象与数据结构 3 ARM 架构内存映射简介 3.1 一级页表映射过程 3.2 二级页表映射过程 4 怎么给 APP 新建一块内存映射 4.1 mmap 调用过程 ​编辑4.2 cache 和 buffer 4.3 驱动程序要做的事 5 编程 5.1 app编程 5.2 hello_drv_test…...

若依框架---为什么把添加和更新分成两个接口

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…...

图论算法:Floyd算法

文章目录Floyd算法例题&#xff1a;灾后重建Floyd算法 Floyd算法用于求图中任意两点之间的最短路径&#xff0c;该算法主要运用了动态规划的思想。 思考&#xff1a; 给你几个点与边&#xff0c;可以组成一张图&#xff0c;那么如何求得任意两点之间的最短路径呢&#xff1f;…...

回顾 | .NET MAUI 跨平台应用开发 - 用 .NET MAUI 开发一个无人机应用(下)

点击蓝字关注我们编辑&#xff1a;Alan Wang排版&#xff1a;Rani Sun微软 Reactor 为帮助广开发者&#xff0c;技术爱好者&#xff0c;更好的学习 .NET Core, C#, Python&#xff0c;数据科学&#xff0c;机器学习&#xff0c;AI&#xff0c;区块链, IoT 等技术&#xff0c;将…...

部署有多个仓库的svn服务

centos7自带svn服务&#xff0c;现需要创建多个仓库&#xff0c;并实现用户读写功能 创建svn版本库 mkdir /home/svn mkdir /home/svn/confmkdir /home/svn/yk1 mkdir /home/svn/yk2 svnadmin create /home/svn/yk1 svnadmin create /home/svn/yk2 进入版本库yk1的配置文件路…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...