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

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.xdnf.cn/news/18284.html

相关文章:

  • Windows 安装使用 MySQL
  • C++架构设计原则
  • 监督学习(Supervised Learning)和 无监督学习(Unsupervised Learning)详解
  • MySQL新手教学
  • 之前说的要写的TCP高性能服务器,今天来了
  • Elasticsearch全文检索中文分词:IK分词器详解与Docker环境集成
  • 用 Python 实现一个“小型 ReAct 智能体”:思维链 + 工具调用 + 环境交互
  • 如何使用 React 101 的 Highcharts 包装器
  • Pomian语言处理器 研发笔记(一):使用C++的正则表达式构建词法分析器
  • 视频讲解:CatBoost、梯度提升 (XGBoost、LightGBM)对心理健康数据、交通流量及股票价格预测研究
  • 从数据汇总到高级分析,SQL 查询进阶实战(下篇)—— 分组、子查询与窗口函数全攻略
  • 8.18 表达式树|浮点数绝对值
  • 基于Flink CDC实现联系人与标签数据实时同步至ES的实践
  • Ps 2025 图像编辑 Photoshop(Mac中文)
  • 【避坑指南】初始化与更新共享数据赋值的一致性问题
  • 【数模国奖冲刺】备赛过程中的常见问题
  • Linux 服务:RAID 级别解析与 mdadm 工具实操指南
  • SWMM排水管网水力、水质建模及在海绵与水环境中的应用技术-模拟降雨和污染物质经过地面、排水管网、蓄水和处理
  • 计算机大数据毕业设计推荐:基于Hadoop+Spark的食物口味差异分析可视化系统【源码+文档+调试】
  • 第一阶段C#基础-13:索引器,接口,泛型
  • 【网络安全实验报告】实验六: 病毒防护实验
  • 【PZ-ZU47DR-KFB】璞致FPGA ZYNQ UltraScalePlus RFSOC QSPI Flash 固化常见问题说明
  • 【P38 6】OpenCV Python——图片的运算(算术运算、逻辑运算)加法add、subtract减法、乘法multiply、除法divide
  • 如何在服务器 clone github 项目
  • 【Linux开发】错误更改bash.sh导致PATH环境变量被破坏所有命令不可用的解决方法
  • 【菜狗学聚类】时序数据聚类算法和相关论文
  • 算法-每日一题(DAY13)两数之和
  • Centos7使用lamp架构部署wordpress
  • CentOS 7 LAMP快速部署WordPress指南
  • 20. 云计算-Service MeshServerless