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

刚面完的狗狗

🔗
xuantao427 2019-10-11 11:36:16 | 只看该作者
全局:
求问time complexity
回复

使用道具 举报

🔗
ncy 2019-10-12 01:19:36 来自APP | 只看该作者
全局:
个人觉得最坏时间复杂度可能是O(N), N表示array里最大元素的值。
最坏情况下可能是一个连续序列,比如初始是[5,1], 最后结果是[5,4,3,2,1]。由于hashset存在导致每个元素最多被访问一次。
回复

使用道具 举报

🔗
xiaohuolong 2019-10-12 11:21:00 | 只看该作者
全局:
adayxiang 发表于 2019-10-11 04:06
请问下如果path的路径不同,但是包含的数相同需要去重吗?

如果用 backtracking + hashset可以做吗? hashs ...

这样应该可行,但时间复杂度是不是太高了,每次递归,都要两两相减寻找符合要求的数。
回复

使用道具 举报

🔗
LockOn 2019-10-12 12:22:12 | 只看该作者
全局:
揣摩意思写了一下, 每次dfs只要考虑新加的这一个元素和之前数组里所有元素的差值

  1. class Solution:
  2.     def findPath(self, nums):
  3.         
  4.         self.paths = []
  5.         def helper(nums, n1, path):
  6.             end = True
  7.             cur = set()
  8.             for n2 in nums:
  9.                 if n1 == n2:
  10.                     continue
  11.                 n = abs(n1 - n2)
  12.                 if n not in nums and n not in cur:
  13.                     end = False
  14.                     cur.add(n)
  15.                     next_nums = nums | set([n])
  16.                     helper(next_nums, n, path + [next_nums])
  17.             if end:
  18.                 self.paths.append(path)
  19.         helper(set(nums), nums[-1], [])   
  20.         return self.paths
复制代码
回复

使用道具 举报

全局:
LockOn 发表于 2019-10-12 12:22
揣摩意思写了一下, 每次dfs只要考虑新加的这一个元素和之前数组里所有元素的差值

[mw_shl_code=python, ...

请问可以稍微解释一下吗,不是很看得懂python……
回复

使用道具 举报

🔗
OliviaC0209 2019-10-17 17:33:28 | 只看该作者
全局:
是只要保留最后一个的结果,还是要把这个过程也要return出来?比如说[3, 1],是要return[3, 1, 2]还是return[[3, 1], [3, 1, 2]]?
回复

使用道具 举报

🔗
 楼主| AngelaJiang 2019-10-18 01:27:12 | 只看该作者
全局:
OliviaC0209 发表于 2019-10-17 17:33
是只要保留最后一个的结果,还是要把这个过程也要return出来?比如说[3, 1],是要return[3, 1, 2]还是retur ...

整个过程都要return。 并且要return全部可能的过程
回复

使用道具 举报

🔗
ysboss123 2019-10-27 13:48:53 | 只看该作者
全局:
用Java实现了下brute force解法,复杂度太高了,楼主的[17, 3]例子都没跑出来,跑了个[8, 3],代码和结果如下,大家来讨论下怎么优化吧。。。





本帖子中包含更多资源

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
回复

使用道具 举报

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

本版积分规则

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