当前位置:网站首页>LeetCode 每日一题 2022/8/1-2022/8/7
LeetCode 每日一题 2022/8/1-2022/8/7
2022-08-08 13:54:00 【alphaTao】
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步
目录
8/1 1374. 生成每种字符都是奇数个的字符串
n是奇数 则n个a
n是偶数 则n-1个a 1个b
def generateTheString(n):
""" :type n: int :rtype: str """
s = "a"*(n-1)
if n%2==1:
s+="a"
else:
s+="b"
return s
8/2 622. 设计循环队列
使用队列模拟 head,tail分别记录当前头尾位置
num记录当前队列中有用的个数
class MyCircularQueue(object):
def __init__(self, k):
""" :type k: int """
self.q = [-1]*k
self.head = 0
self.tail = 0
self.num = 0
self.k = k
def enQueue(self, value):
""" :type value: int :rtype: bool """
if self.num<self.k:
self.q[self.tail] = value
self.tail = (self.tail+1)%self.k
self.num +=1
return True
else:
return False
def deQueue(self):
""" :rtype: bool """
if self.num>0:
self.num -=1
self.head = (self.head+1)%self.k
return True
else:
return False
def Front(self):
""" :rtype: int """
if self.num>0:
return self.q[self.head]
else:
return -1
def Rear(self):
""" :rtype: int """
if self.num>0:
loc = self.tail-1
if loc<0:
loc += self.k
return self.q[loc]
else:
return -1
def isEmpty(self):
""" :rtype: bool """
return self.num==0
def isFull(self):
""" :rtype: bool """
return self.num == self.k
8/3 899. 有序队列
当k>1时 可以得到s的升序字符串
当k=1时 需要考虑移动n-1次的每种情况
def orderlyQueue(s, k):
""" :type s: str :type k: int :rtype: str """
if k>1:
return "".join(sorted(s))
ans = s
for i in range(1,len(s)):
tmp = s[i:]+s[:i]
if tmp<ans:
ans = tmp
return ans
8/4 1403. 非递增顺序的最小子序列
先求总和
从大到小排序
依次取出较大的数 直至超过总和的一半
def minSubsequence(nums):
""" :type nums: List[int] :rtype: List[int] """
nums.sort(reverse=True)
total = sum(nums)
ans = []
cur = 0
for num in nums:
cur += num
ans.append(num)
if cur>total/2:
break
return ans
8/5 623. 在二叉树中增加一行
dfs找到这一层之前一层 加入
如果depth=1特殊处理
class TreeNode(object):
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def addOneRow(root, val, depth):
""" :type root: TreeNode :type val: int :type depth: int :rtype: TreeNode """
def dfs(node,d):
if not node:
return
if d==depth:
l = TreeNode(val)
l.left = node.left
node.left = l
r = TreeNode(val)
r.right = node.right
node.right = r
return
dfs(node.left,d+1)
dfs(node.right,d+1)
return
if depth==1:
new = TreeNode(val)
new.left = root
return new
dfs(root,1)
return root
8/6 1408. 数组中的字符串匹配
穷举 两两比较
def stringMatching(words):
""" :type words: List[str] :rtype: List[str] """
ans = []
for i,x in enumerate(words):
for j,y in enumerate(words):
if i!=j and x in y:
ans.append(x)
break
return ans
8/7 636. 函数的独占时间
栈 保存[函数标签,起始时间]信息
如果是起始点 判断栈中是否有元素
如果有 说明上一个暂时暂停了 中间间隔为上一个元素的时间
并将上个元素起始点移至当前位置
将当前元素信息保存
如果是终结点 则与上一个起始点配对 将间隔时间加入
此时如果栈中还有元素 将其起始位移至当前位置
def exclusiveTime(n, logs):
""" :type n: int :type logs: List[str] :rtype: List[int] """
ans = [0]*n
st = []
for log in logs:
l = log.split(":")
idx,tg,time = int(l[0]),l[1],int(l[2])
if tg=="start":
if st:
tmpid,tmptime = st[-1]
ans[tmpid]+=time-tmptime
st[-1][1] = time
st.append([idx,time])
else:
i,t = st.pop()
ans[i]+=time-t+1
if st:
st[-1][1] = time+1
return ans
边栏推荐
- R语言使用位置索引筛选dataframe的数据列:筛选单个数据列、筛选多个数据列、列表表达式方法、矩阵式下标方法
- 【电路基础2】电容
- 代码随想录笔记_动态规划_322零钱兑换
- R语言patchwork包将多个ggplot2可视化结果组合起来、使用plot_annotation函数以及tag_level参数为组合图添加自定义编码序列(字符向量列表)
- “自降估值”3个亿的咖啡独角兽要IPO了
- 【小码匠自习室】[NOI Online 2020-3 入门组] 最急救助:被“幸运女神”眷顾的人
- R语言ggplot2可视化:使用ggpubr包的ggdonutchart函数可视化甜甜圈图(donut chart)、为甜甜圈图添加自定义标签(包含文本内容以及数值百分比)、lab.font参数设置标
- Qt的简易日志库实现及封装
- 【个人总结】2022.8.7周结
- 6. [opencv mouse callback event]
猜你喜欢
OpenInfra Days China 2022 |StreamNative 翟佳、刘德志受邀分享
KD-SCFNet:通过知识蒸馏实现更准确、更高效的显着目标检测(ECCV2022)
QWebAssembly中文适配
用 Antlr 重构脚本解释器
Implement a customized pin code input control
「复盘」面试BAMT回来整理398道高频面试题,助你拿高薪offer
HackTheBox | Previse
Implementation of FIR filter based on FPGA (1) - using fir1 function design
复盘:什么是秋招提前批?什么是普通秋招?都是招聘,为啥要设置这两个招聘时间段
译文推荐|深入解析 BookKeeper 协议模型与验证
随机推荐
Verilog HDL Bits training 09 grammar foundation
mysql 查询一个字段为特定值,并且另一个字段的值出现两次的记录?
HackTheBox | Horizontall
textarea 禁止拖拽
String转成double等类型注意非空判断
HackTheBox | Previse
serialize serialize native method
Qt操作Sqlite类封装,及命令行导入csv文件到Sqlite数据库
【个人总结】2022.8.7周结
如果Controller里有私有的方法,能成功访问吗?
[Redis] Bitmap and usage scenarios of bitmap (statistics of online people and user online status)
R语言patchwork包将多个ggplot2可视化结果组合起来、使用plot_annotation函数以及tag_level参数为组合图添加自定义编码序列(字符向量列表)
哈佛大学砸场子:DALL-E 2只是「粘合怪」,生成正确率只有22%
活动报名| StreamNative 受邀参与 ITPUB 在线技术沙龙
bzoj 3624 [Apio2008]免费道路
window停掉指定端口的进程
「复盘」面试BAMT回来整理398道高频面试题,助你拿高薪offer
【SWT】创建自己的SWT组件
Review: What is the pre-approval of autumn recruitment?What is an ordinary autumn move?It's all recruitment, why do you need to set these two recruitment time periods?
剑指 Offer 66. 构建乘积数组