leetcode-刷题经验

以下内容来自本人在 一亩三分地 论坛上开帖得到的回复。

既然慢就多思考优化呀。。。通常有以下思路 (临时总结,仅供参考):

*1. 找性能瓶颈。比如排序是nlogn最耗时,有没有办法不排序直接得到答案?比如two sum,不排序,直接上hashmap
2. 优化代码。有挺多种情况
(1) 有没有多余的操作?比如不必要的copy
(2) 递归能不能换迭代?在递归的overhead比较高的时候,提升会明显一些
(3) 有没有可能剪枝避免重复操作?个人觉得,DP的memorization有一点点剪枝的感觉,然后就是比如combination sum那种backtracking的题,并不需要全部solution都试一遍
(*4) 巧妙的操作或者数据结构。比如bit operation,或者用数组代替hashmap,因为hashmap(比如c++中)多少还是有overhead的
*3. 找新的算法。去看书,搜blog或者看论坛discussion。

国内很多blog只要解出来就贴,感觉比较浮躁,当然也有好的。可以选择直接看leetcode的discussion啊。。。带星号的表示可能稍微难一点,但是多加练习就不难了。
然后大概时间能在大多数人在的范围就可以了,中等或者中等偏上。论坛有些神人解法很叼,可以参考,但是不适合面试的时候用(非大牛的话),除非你就是研究算法的。。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值