LeetCode 每日一题 2022/11/21-2022/11/27
创始人
2024-02-16 02:19:35
0

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


目录

      • 11/21 808. 分汤
      • 11/22 878. 第 N 个神奇数字
      • 11/23 1742. 盒子中小球的最大数量
      • 11/24 795. 区间子数组个数
      • 11/25 809. 情感丰富的文字
      • 11/26
      • 11/27


11/21 808. 分汤

可以将25ml看作1份 四种情况分别为
A 4 B 0
A 3 B 1
A 2 B 2
A 1 B 3
开始时 A,B拥有的份数一样
当n过大时 A被取完的概率接近于1 误差小于10^-5
假设dp[i][j] 为A剩余i份 B剩余j份时 需要求的概率
dp[i][j] = (dp[i-4][j]+dp[i-3][j-1]+dp[i-2][j-2]+dp[i-1][j-3])/4
当j=0,i>0时 dp[i][j] = 0
当i=0,j>0时 dp[i][j] = 1
当i=0,j=0时 dp[i][j] = 0.5

def soupServings(n):""":type n: int:rtype: float"""n = (n+24)//25if n>=179:return 1dp = [[0]*(n+1) for _ in range(n+1)]dp[0] = [0.5]+[1.0]*nfor i in range(1,n+1):for j in range(1,n+1):dp[i][j] = (dp[max(0, i - 4)][j] + dp[max(0, i - 3)][max(0, j - 1)] +dp[max(0, i - 2)][max(0, j - 2)] + dp[max(0, i - 1)][max(0, j - 3)])/4return dp[n][n]

11/22 878. 第 N 个神奇数字

f(x)表示小于等于x内的神奇数字数目 c为a,b最小公倍数lcm
f(x)=x//a+x//b-x//c
f(x)随x增加单调不减 所以可以二分查找第n个神奇数字

def nthMagicalNumber(n, a, b):""":type n: int:type a: int:type b: int:rtype: int"""def lcm(a,b):x,y = a,bif a0:x,y = y,x%yreturn a*b/xMOD = 10**9+7l,r = min(a,b),min(a,b)*nc = lcm(a,b)while l<=r:mid = (l+r)>>1s = mid//a+mid//b-mid//cif s>=n:r = mid-1else:l = mid+1return (r+1)%MOD

11/23 1742. 盒子中小球的最大数量

用map存储每个盒子内的小球数

def countBalls(lowLimit, highLimit):""":type lowLimit: int:type highLimit: int:rtype: int"""def func(x):tag = 0while x>0:tag += x%10x = x//10return tagdic = {}ans = 0for i in range(lowLimit,highLimit+1):tag = func(i)dic[tag] = dic.get(tag,0)+1if dic[tag]>ans:ans = dic[tag]return ans

11/24 795. 区间子数组个数

子数组最大值不能大于right 且范围内至少有一个处于[left,right]间
l表示上次出现大于right的位置
r表示上次出现left,right之间的位置
对于当前位置i 可以有r-l个选择
遍历每一个位置可以得到答案

def numSubarrayBoundedMax(nums, left, right):""":type nums: List[int]:type left: int:type right: int:rtype: int"""ans = 0l,r = -1,-1for i,num in enumerate(nums):if left<=num<=right:r = ielif num>right:l = ir = -1if r!=-1:ans += r-lreturn ans

11/25 809. 情感丰富的文字

func 将字符串中连续相同的字母压缩成一个字母+出现的次数
比较原始s和需要比较的字符串w 压缩后的状态
需要满足 长度相等 每个位置上的字母需要一样
出现的次数 s和w相同 或者s>w 并且s的次数大于等于3

def expressiveWords(s, words):""":type s: str:type words: List[str]:rtype: int"""def func(s):l = []cur = ""num = 0for c in s:if cur=="":cur = cnum=1elif cur==c:num+=1else:l.append((cur,num))cur = cnum = 1l.append((cur,num))return lsl = func(s)ans = 0for w in words:wl = func(w)if len(wl)!=len(sl):continuetag = Truefor i in range(len(sl)):if sl[i][0]!=wl[i][0]:tag = Falsebreakif wl[i][1]==sl[i][1] or (sl[i][1]>wl[i][1] and sl[i][1]>=3):continueelse:tag = Falsebreakif tag:ans+=1return ans

11/26


11/27


相关内容

热门资讯

能不能给我《猫武士》第一本的第... 能不能给我《猫武士》第一本的第一个啊?呼唤野性的第一章如果能给我很多的话就更好啦!回答好我就给你一串...
高手们请帮忙翻译下下面的文章,... 高手们请帮忙翻译下下面的文章,急用,谢谢了!翻译成英文?
落跑甜心大结局是什么啊,具体的 落跑甜心大结局是什么啊,具体的男主角和女主角在一个没人的山坡举行婚礼仪式,仪式结束后,藏在山坡下的亲...
关于冬风的诗句 关于冬风的诗句千里黄云白日曛,北风吹雁雪纷纷。(唐·高适《别董大》)
林如海的介绍 林如海的介绍林如海,是清代小说《红楼梦》中的人物,巡盐御史,娶妻贾敏,林黛玉之父。
南阳有几个监狱,具体位置在哪,... 南阳有几个监狱,具体位置在哪,盗墓被判了大概五年,会在南阳那个监狱?哥,难道你就是传说中的摸金校尉。
有一本游戏小说主角是一个监狱的... 有一本游戏小说主角是一个监狱的人,还是秘密组织的人他得到一个神器叫沙盗王的戒指,上面有一段话是什么英...
形容不团结的成语有哪些? 形容不团结的成语有哪些?1、一盘散沙,、各奔东西2、,四分五裂、拳中掿沙3、七支八搭、勾心斗角4、自...
我们都一样年轻又彷徨中因为读了... 我们都一样年轻又彷徨中因为读了这本书抑郁症好了的是那一篇?保险杠铃声多多关照了我在家级的多吃点东西都...
小说炎景熙和陆沐擎最后在一起了... 小说炎景熙和陆沐擎最后在一起了吗熙带着花环和志焕一起拍了一张两个人的照片,那也是最后的一张照片,至此...
求有关化肥的绕口令。 求有关化肥的绕口令。1、初入江湖:化肥会挥发2、小有名气:黑化肥发灰,灰化肥发黑3、名动一方:黑化肥...
小喜鹊是怎样起床的 小喜鹊是怎样起床的早上大喜鹊从早上四点开始捕食喂小鸟,一直到晚上,早上小喜鹊和大喜鹊都醒了自身的生物...
贝贝小南瓜的生长资料? 贝贝小南瓜的生长资料?贝贝南瓜需要提前将种子浸泡一夜。幼苗定植一个月后,需要对土壤进行深耕,施肥。每...
苗族姑娘怎么画? 苗族姑娘怎么画? 画清楚,画好一些 找专业画家画啊,我就知道 , 兄弟壁画 挺好的,中国最大的了
求一篇科幻小说,男主被流放到一... 求一篇科幻小说,男主被流放到一颗有人形生物的星球,不断杀掉长相和地球人不同的外星生物男主被流放到一颗...
柳树怎么画 柳树怎么画柳树怎么画
快穿文女主姓宋叫什么歌,男主第... 快穿文女主姓宋叫什么歌,男主第一个位面姓林,叫什么不知道了,里面还有一个位面是腹黑王妃的?男主是那个...
哑舍同人文 哑舍同人文最好是上传的TAT~~~没有写哑舍同人文哦,怨念。。。。。。。。不过玄色大神在赤锁吧写了一...
陆墨宸简汐和刘雨彤的小说叫什么... 陆墨宸简汐和刘雨彤的小说叫什么名字宠婚:总裁在上
加法是什么意思? 加法是什么意思? 很高兴告诉你!加法: 把两个数合并成一个数的运算 把两个小数合并成一源粗带个小...