xinxinxxyy 2023-01-27 03:26 采纳率: 100%
浏览 164
已结题

leetcode上面的题,求解

img


我用了两种写法 前面的答案都没问题 就是到了n==130的时候,一种得到答案为2(正确答案),一种得到的答案为4,但是,我把第二种错误答案的代码改一下,就是把下面的for循环,改成i=2开始,答案就变成了2,就正确了,我不知道为什么,百思不得其解,求解!!

img


这是第一种正确的代码,求平方数的个数就相当于在求深度,这里的深度体现在temp+1上

img

这是第二种答案有错误的代码,n等于130的时候出现了错误正确答案是2,这个dfs得出来的是4,我想的是每往下递归一层,index就+1,这里的index是层数(深度),初始化为0 只要我把i初始化为2 答案就正确了 不知道是什么原因 我觉得这两种写法应该是一个意思啊。

  • 写回答

2条回答 默认 最新

  • X-道至简 2023-01-27 14:29
    关注

    我运行了一下,第一种和第二种结果是一样的
    是不是可能栈运行有异常的情况
    你这样试试:

    1. 测试一:输入90(=81+9)看是不是对的,如果是对的,说明程序逻辑没有啥问题,注意下各个变量的初始化
    2. 测试二:把for从1到sqrt(n),改成从大sqrt(n)到1在试一下130的情况
    3. 注意取的sqrt(n)值要能循环到,比如130,要能到循环到11
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月4日
  • 已采纳回答 1月27日
  • 创建了问题 1月27日

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料