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

LeetCode 每日一题 2025/8/11-2025/8/17

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


目录

      • 8/11 2438. 二的幂数组中查询范围内的乘积
      • 8/12 2787. 将一个数字表示成幂的和的方案数
      • 8/13 326. 3 的幂
      • 8/14 1780. 判断一个数字是否可以表示成三的幂的和
      • 8/15 342. 4的幂
      • 8/16 1323. 6 和 9 组成的最大数字
      • 8/17 837. 新 21 点


8/11 2438. 二的幂数组中查询范围内的乘积

将n转换为二进制 如果第k位为1 那么包含2^k
得到所有元素后 预处理res[i][j]保存 [i~j]的积


def productQueries(n, queries):""":type n: int:type queries: List[List[int]]:rtype: List[int]"""MOD=10**9+7bins,cur=[],1while n>0:if n%2==1:bins.append(cur)n//=2cur*=2m=len(bins)res=[[0]*m for _ in range(m)]for i in range(m):cur=1for j in range(i,m):cur=cur*bins[j]%MODres[i][j]=curans=[]for l,r in queries:ans.append(res[l][r])return ans

8/12 2787. 将一个数字表示成幂的和的方案数

dp 背包
从前i个数字中选取j个数字

def numberOfWays(n, x):""":type n: int:type x: int:rtype: int"""MOD=10**9+7dp=[0]*(n+1)dp[0]=1for i in range(1,n+1):v=i**xif v>n:breakfor j in range(n,v-1,-1):dp[j]=(dp[j]+dp[j-v])%MODreturn dp[n]

8/13 326. 3 的幂

不断除以3 出现余数说明不满足

def isPowerOfThree(n):""":type n: int:rtype: bool"""while n>1:if n%3==0:n=n//3else:return Falsereturn True if n==1 else False

8/14 1780. 判断一个数字是否可以表示成三的幂的和

假设n = 3a+3b+3^c+… a<b<c
每一轮除以3 经过a轮后得到 1+3(b-a)+3(c-a)
此时余数为1 因为幂不同 所以在同一轮中余数只能为0或1
如果得到余数2说明不满足

def checkPowersOfThree(n):""":type n: int:rtype: bool"""while n>0:if n%3==2:return Falsen//=3return True

8/15 342. 4的幂

条件:
1.不能为负数
2.二进制只能出现1个1
3.1需要在二进制的奇数位 1 100 10000 看出规律 包含偶数个0

def isPowerOfFour(n):""":type n: int:rtype: bool"""if n <0 :return Falseif n&(n-1)>0:return Falses = bin(n)[2:]return  s.count('0')%2==0

8/16 1323. 6 和 9 组成的最大数字

从最高位开始往后遇到的第一个6变成9
6变9多了3 根据位置增加10^i*3

def maximum69Number (num):""":type num: int:rtype: int"""cur=0i=-1ori = numwhile num:if num%10==6:i=curcur+=1num//=10return ori if i==-1 else ori+3*(10**i)

8/17 837. 新 21 点

dp
最大能够抽到k+maxPts-1
dp[x]代表从x开始获胜的概率
dp相邻项计算差分
dp[i]-dp[i+1] = (dp[i+1]-dp[i+maxPts+1])/maxPts

def new21Game(n, k, maxPts):""":type n: int:type k: int:type maxPts: int:rtype: float"""if k==0:return 1.0dp=[0.0]*(k+maxPts)for i in range(k,min(n,k+maxPts-1)+1):dp[i]=1.0dp[k-1]=float(min(n-k+1,maxPts))/maxPtsfor i in range(k-2,-1,-1):dp[i]=dp[i+1]-(dp[i+maxPts+1]-dp[i+1])/maxPtsreturn dp[0]

http://www.dtcms.com/a/338425.html

相关文章:

  • 【嵌入式基础梳理#12】风压计Modbus框架示例
  • RAG:让AI成为你的知识专家
  • Maven Assembly Plugin 插件使用说明
  • Linux下使用ssh-agent实现集群节点间无免密安装部署
  • 深度学习——R-CNN及其变体
  • 【轨物交流】轨物科技与华为鲲鹏生态深度合作 光伏清洁机器人解决方案获技术认证!
  • Session共享与Sticky模式:优化Web应用性能
  • [激光原理与应用-296]:理论 - 非线性光学 - 线性光学与非线性光学对比
  • SpringBoot校园商铺运营平台
  • 跨平台RTSP播放器深度对比:开源方案与商业SDK的取舍之道
  • MiniMax Agent 上线 Market Place ,AI一键复制克隆网站
  • 视觉语言导航(5)——VLN的具体工作原理——Seq2Seq CMA模型 KL散度 TRANSFORMER 3.1前半段
  • PMP-项目管理-十大知识领域:资源管理-管理团队、设备、材料等资源
  • Win10下配置WSL2后nvidia-smi不正常显示问题
  • 第一阶段C#基础-15:面向对象梳理
  • python-----机器学习中常用的数据预处理
  • 【前端面试题】JavaScript 核心知识点解析(第二十二题到第六十一题)
  • 【数据分析】R语言在生态学数据分析中的应用:从数据处理到可视化
  • 美图披露半年报:AI应用取得突破,净利润同比大增71.3%
  • C++11列表初始化 {}
  • GitHub Actions 从核心思想到最佳实践
  • 宋红康 JVM 笔记 Day04|双亲委派机制、沙箱安全机制、类的自动使用与被动使用
  • 电子电气架构 --- 软件会给汽车带来哪些变化?
  • 鸿蒙生态7月技术月报 | HarmonyOS 5.1 开发特性详解
  • 蓝池参与雅江水电工程融资,助力国家基础设施建设与经济发展
  • 08.常见文本处理工具
  • 03.文件管理和操作命令
  • 解读60页全面认识大数据基础知识培训【附全文阅读】
  • 8.18 打卡 DAY 45 Tensorboard使用介绍
  • Mysql——前模糊索引失效原因及解决方式