当前位置:网站首页>lc marathon 8.2
lc marathon 8.2
2022-08-03 03:30:00 【云霞川】
文章目录
622. 设计循环队列
循环队列,若需要存k个元素,则申请k+1个空间,并留出最后一位。
front 队头只删除元素
rear 队尾只插入元素
front 指向队头第一个元素
rear 指向队尾第一个空的位置(最后一个元素的后一位)
front==rear 队空
front==(rear+1)%(k+1) 队满
删除 需检查是否队空
插入 需检查是否队满
class MyCircularQueue:
def __init__(self, k: int):
self.front=0
self.rear=0
self.ls=[0 for i in range(k+1)]
self.maxlen=k+1
def enQueue(self, value: int) -> bool:
if self.front%self.maxlen==(self.rear+1)%self.maxlen:
return False
self.ls[self.rear%self.maxlen]=value
self.rear=(self.rear+1)%self.maxlen
return True
def deQueue(self) -> bool:
if self.front==self.rear:
return False
self.front=(self.front+1)%self.maxlen
return True
def Front(self) -> int:
if self.rear==self.front:
return -1
return self.ls[self.front%self.maxlen]
def Rear(self) -> int:
if self.rear==self.front:
return -1
return self.ls[(self.rear-1)%self.maxlen]
def isEmpty(self) -> bool:
if self.front==self.rear:
return True
else:
return False
def isFull(self) -> bool:
if self.front%self.maxlen==(self.rear+1)%self.maxlen:
return True
else:
return False
222. 完全二叉树的节点个数
利用完全二叉树的性质,满二叉树的节点数==2^height-1
因此我们先检查是不是满二叉树 ,是的话可以直接算
不是,则再分别递归左右节点
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def countNodes(self, root: Optional[TreeNode]) -> int:
if root==None:
return 0
left=root.left
ld=1
right=root.right
rd=1
while(left):
ld=ld+1
left=left.left
while(right):
rd=rd+1
right=right.right
if ld==rd:
return pow(2,ld)-1
return 1+self.countNodes(root.left)+self.countNodes(root.right)
357. 统计各位数字都不同的数字个数
get1 求n的阶乘
get2 求n位的时候,有几种
用排列组合的知识
n=1:0,1,2,3…9 共有10种
dic={
}
class Solution:
def countNumbersWithUniqueDigits(self, n: int) -> int:
if n>10:
return 0
if n==0:
return 1
s=0
for i in range(1,n+1):
s+=get2(i)
return int(s)
def get2(n):
# 全部不相同
# n>10:return 0
# n=10:return A{10}{10}-A{9}{9}
# n<10:
# 首先从10个数字中 挑选n个 C{n}{10}
# 然后对其排序 A{n}{n}
# 最终结果减去 0开头的数字 C{9}{n-1}*A{n-1}{n-1}
if n>10 :
return 0
elif n==10:
return get(n)-get(n-1)
elif n==1:
return 10
else:
return get(10)/get(10-n)-get(9)/get(9-n+1)
# 1:0,1,2,3,4..9
def get(n):
global dic
if n in dic.keys():
return dic[n]
l=1
for i in range(1,n+1):
l=l*i
dic[n]=l
return l
205. 同构字符串
要求必须长度一样,元素种类个数一样
且相同的位置 一样
class Solution:
def isIsomorphic(self, s: str, t: str) -> bool:
if not (len(s)==len(t) and len(set(s))==len(set(t))):
return False
dic={
}
for index,schar in enumerate(s):
if schar not in dic.keys():
dic[schar]=index
else:
if t[index]!=t[dic[schar]]:
return False
return True
边栏推荐
猜你喜欢

我终于逃离了互联网,却陷入了迷茫

HI3521D 烧录128M nand flash文件系统过程-一定要注意flash的容量

中原银行实时风控体系建设实践

什么是数据标注? 数据标注公司主要做什么?

高等代数_证明_矩阵乘以自身的转置的特征值不小于0

List<Object>转List<User>:

【GraphQL】使用Hot Chocolate和.NET 6构建GraphQL应用

JS高级 之 Proxy-Reflect 使用详解

Best Practices for Migration from Jincang Database from MySQL to KingbaseES (3. MySQL Database Migration Practice)

C语言——结构体(声明、内存对齐、自引用)、位段、联合体、枚举常量合集
随机推荐
TRACE32——使用读写断点
JWT入门学习
软件测试技术之如何编写测试用例(2)
电子设备行业智能供应链系统:打破传统供应链壁垒,提升电子设备企业管理效能
Best Practices for Migration from Jincang Database from MySQL to KingbaseES (3. MySQL Database Migration Practice)
金仓数据库 Pro*C 迁移指南( 4. KingbaseES 的 Pro*C 迁移指南)
Jincang Database Pro*C Migration Guide ( 5. Program Development Example)
大佬们,我有点不明白:为什么oracle-cdc的文档写connector可以做到exactly-o
我终于逃离了互联网,却陷入了迷茫
2022-08-02 顾宇佳 学习笔记 多线程
道通转债,微芯转债,博22转债上市价格预测
什么是数据标注? 数据标注公司主要做什么?
IPv4编址;A类、B类、C类、D类、E类IP地址(IP地址;网络地址和主机地址;子网掩码;网关;广播地址;)
【 original 】 Auto. Js the get and post case
浅谈用KUSTO查询语言(KQL)在Azure Synapse Analytics(Azure SQL DW)审计某DB账号的操作记录
zyMedia系列之播放视频
ESP8266-Arduino编程实例-LED点阵驱动(基于Max7219)
找不到符号@SuperBuilder,你以为真的是Lombok的问题?
【leetcode热题Hot100】——LRU缓存
els 计分