12
返回列表 发新帖
楼主: sigridsylvia
跳转到指定楼层
上一主题 下一主题
收起左侧

Google 电面

🔗
snklee 2015-9-8 00:58:07 | 只看该作者
全局:
  1. def minSqrSum(num):
  2.     opt = [[] for i in range(0, num+1)]
  3.     sq = 1
  4.     while sq**2<num:
  5.         sq += 1
  6.     sqrs = [i**2 for i in range(1,sq)]
  7.     for i in sqrs:
  8.         opt[i] = [i]
  9.     for i in range(1, num+1):
  10.         for sq in sqrs:
  11.             if i+sq>num:
  12.                 break
  13.             tmp = opt[i] + [sq]
  14.             if not opt[i+sq] or len(tmp)<len(opt[i+sq]):
  15.                 opt[i+sq] = tmp
  16.     return opt[num]
复制代码
回复

使用道具 举报

🔗
snklee 2015-9-8 00:58:21 | 只看该作者
全局:
  1. def minSqrSum(num):     opt = [[] for i in range(0, num+1)]     sq = 1     while sq**2<num:         sq += 1     sqrs = [i**2 for i in range(1,sq)]     for i in sqrs:         opt[i] = [i]     for i in range(1, num+1):         for sq in sqrs:             if i+sq>num:                 break             tmp = opt[i] + [sq]             if not opt[i+sq] or len(tmp)<len(opt[i+sq]):                 opt[i+sq] = tmp     return opt[num]
复制代码
回复

使用道具 举报

🔗
snklee 2015-9-8 00:59:00 | 只看该作者
全局:
  1. def minSqrSum(num):
  2.     opt = [[] for i in range(0, num+1)]
  3.     sq = 1
  4.     while sq**2<num:
  5.         sq += 1
  6.     sqrs = [i**2 for i in range(1,sq)]
  7.     for i in sqrs:
  8.         opt[i] = [i]
  9.     for i in range(1, num+1):
  10.         for sq in sqrs:
  11.             if i+sq>num:
  12.                 break
  13.             tmp = opt[i] + [sq]
  14.             if not opt[i+sq] or len(tmp)<len(opt[i+sq]):
  15.                 opt[i+sq] = tmp
  16.     return opt[num]
复制代码
回复

使用道具 举报

🔗
rb131108 2015-9-10 08:29:56 | 只看该作者
全局:
感觉可以转换成dp找钱的题

dp[n]=min(dp[n-1^2], dp[n-2^2]...dp[n-k^2])+1     k<=sqrt(n)

回复

使用道具 举报

🔗
坐看云起 2015-9-23 08:22:56 | 只看该作者
全局:
可以从1到n计算最少组合数,复杂度是n的3/2次方;
利用四平方和定理,可以提升到O(n);
不过貌似都是伪多项式时间的
回复

使用道具 举报

🔗
xnature 2015-9-23 08:59:57 | 只看该作者
全局:
用四平方和定理明显overkill,只要能正确写出dp解法即可
回复

使用道具 举报

🔗
xnature 2015-9-23 09:00:13 | 只看该作者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表