查看: 2030| 回复: 13
跳转到指定楼层
上一主题 下一主题
收起左侧

LeetCode Shortest Palindrome

头像被屏蔽
提示: 作者被禁止或删除 内容自动屏蔽

上一篇:请教这道 Lintcode 的 Nuts & Bolts problem
下一篇:Binary Search Tree Iterator
全局:
本帖最后由 zhuli19901106 于 2015-7-29 05:49 编辑
zkb2008116 发表于 2015-7-29 04:22
第一个是找到末尾往中间走,第二个是找到中间往两边走,不是一样的么。。

你怎么非关心这个。。你的关注点偏了,这题有更低复杂度的解,这个暴力解也就没有关注的价值。建议你了解下这俩概念:复杂度、程序调优
leetcode的关注点基本都在复杂度上,所以不要纠结任何代码细节,那都是程序调优的范畴。
复杂度首先要优化,然后再考虑代码细节的事。如果给个长度100万的字符串,这两个程序可以跑到天荒地老,没一个能过的。
建议别纠结这个,琢磨出O(N)的解法,你就不需要这俩了。

回复

使用道具 举报

全局:
本帖最后由 zhuli19901106 于 2015-7-29 06:01 编辑
zkb2008116 发表于 2015-7-29 05:48
就算是dp找 palindrome 这一步也得要O(N^2)吧, O(N)暂时还做不出来。。。。

这些hard难度的题,每题都可以用暴力方法AC掉,然而那样对自己并没有提高
要尽力找出最优解,这个过程本身就是学习啊,我做这题时,也是琢磨了将近半天,到了半夜才突然有想法,然后把O(N)的算法写出来了。

你可以先试着想出 Longest Palindromic Substring 和 Implement strStr()这两题,这两题的O(N)算法都搞懂了,这题也就没问题了。

回复

使用道具 举报

全局:
超时不代表运行时间无穷大,比如运行时限制在2000ms,那么你1999ms也能AC,2002ms就超时了。这俩暴力算法道理是一样的,所以差别只在于常系数。
常系数这东西,快的和慢的可以差到数百倍之多,对运行时间有显著影响的。所以同复杂度的算法,写法不好的超时,写法好的通过很正常。
回复

使用道具 举报

🔗
zhuli19901106 2015-7-29 03:08:25 | 只看该作者
全局:
这俩都是暴力算法,所以如果第二个能AC,估计也是几百甚至上千毫秒吧?
回复

使用道具 举报

🔗
zhuli19901106 2015-7-29 03:08:53 | 只看该作者
全局:
这题有两个O(N)算法,楼主琢磨一下?其中一个思想略难,实现简单,一个思想简单,实现麻烦。
回复

使用道具 举报

🔗
zhuli19901106 2015-7-29 03:11:52 | 只看该作者
全局:
一堆aaaaaaaa...aaaaaaaaaaaaaa是字符串算法的常见bad case,更常见的是这个aaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaab
回复

使用道具 举报

🔗
zhuli19901106 2015-7-29 03:38:51 | 只看该作者
全局:
zkb2008116 发表于 2015-7-29 03:21
问题是为什么第一种算法就超时,第二种就AC啊?

第一种算法时间大概是第二种的两倍,你注意代码中的下标从哪儿开始。
暴力算法就别纠结这些了,反正写这个是通过不了面试的。
回复

使用道具 举报

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

本版积分规则

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