You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化统计小于N的完全平方数的Python代码以缩短执行时间

优化方案

原代码存在两处明显的冗余设计,是执行效率偏低的核心原因:

  • 不需要循环遍历计算每个平方数,本质上小于N的正整数完全平方数的数量,等于小于√N的正整数的个数,可以直接通过平方根取整得到,时间复杂度从O(√N)直接降到O(1)
  • 原代码中存储所有平方数的list变量完全冗余,额外占用了O(√N)的内存空间,完全可以删除

如果N的量级很大(比如10^12),原代码需要执行百万次循环,优化后只需要一次平方根运算,执行效率提升非常明显。

优化后代码
import math
class Solution:
    def countSquares(self, N):
        # Python 3.8+ 推荐用math.isqrt,避免大整数下浮点数精度误差
        return math.isqrt(N - 1)
        # 低版本Python可以替换为下方写法
        # return int(math.sqrt(N - 1))
逻辑验证
  • 示例输入N=9时,N-1=8,isqrt(8)=2,和示例输出一致,对应1、4两个符合要求的平方数
  • 输入N=2时,N-1=1,isqrt(1)=1,对应1个平方数1,符合预期
  • 输入N=1时,N-1=0,isqrt(0)=0,没有小于1的正完全平方数,符合预期

内容的提问来源于stack exchange,提问作者Sahil Karnany

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:12:05