花花酱 LeetCode 1320. Minimum Distance to Type a Word Using Two Fingers - 刷题找工作 EP298

  Рет қаралды 2,652

Hua Hua

Hua Hua

Күн бұрын

Пікірлер: 17
@hengchunsong301
@hengchunsong301 4 жыл бұрын
听花花一席话,胜自己瞎折腾十小时。昨天想破脑袋也没明白为什么自己的解法超时。原来递归加记忆是记录了字符串位置而不是字母本身。到后面的降围优化又让我看懂一些高手的答案为啥那么快。
@HuaHuaLeetCode
@HuaHuaLeetCode 4 жыл бұрын
用位置的话是O(n^3),感觉有些勉强
@dionwang
@dionwang 4 жыл бұрын
优化思路牛逼
@sakuragi1111
@sakuragi1111 3 жыл бұрын
比如你有三个手指,多个手指都一样...一本正经地搞笑😂
@lobsterl6286
@lobsterl6286 4 жыл бұрын
left right finger 不是index 而是上一步的所有可能性,这一步解释的太好了。。。看别人的答案一直迷糊为什么不是上一步的index,想不明白这一步的话dp根本没法优化时间。
@xianjuwang1123
@xianjuwang1123 3 жыл бұрын
我还是没想明白,这个解法是按顺序打印,题目上没有这样说。
@xinyuanliu1959
@xinyuanliu1959 4 жыл бұрын
请问是如何想到从两个手指到一个手指的优化呢?
@jasonsun8202
@jasonsun8202 4 жыл бұрын
huahua 最近用fp风格写cpp了啊!
@HuaHuaLeetCode
@HuaHuaLeetCode 4 жыл бұрын
懒得传参数
@jasonsun8202
@jasonsun8202 4 жыл бұрын
cpp closure 不错。不过你的function 式dfs 有时候 会引起type erasure 和用到heap space。
@jasonsun8202
@jasonsun8202 4 жыл бұрын
用这个。 template struct recursive { F f; template decltype(auto) operator()(Ts&&... ts) const { return f(std::ref(*this), std::forward(ts)...); } template decltype(auto) operator()(Ts&&... ts) { return f(std::ref(*this), std::forward(ts)...); } }; template recursive(F) -> recursive; auto const rec = [](auto f){ return recursive{std::move(f)}; };
@jasonsun8202
@jasonsun8202 4 жыл бұрын
而且可以使用 optional monad 继续优化和解耦。
@jasonsun8202
@jasonsun8202 4 жыл бұрын
@@HuaHuaLeetCode lambda 是default inline 的好像。
@chaopei9357
@chaopei9357 4 жыл бұрын
这个是不是算greedy啊?
@Anonymous____________A721
@Anonymous____________A721 5 ай бұрын
Optimized dp
FOREVER BUNNY
00:14
Natan por Aí
Рет қаралды 31 МЛН
Как Я Брата ОБМАНУЛ (смешное видео, прикол, юмор, поржать)
00:59
Farmer narrowly escapes tiger attack
00:20
CTV News
Рет қаралды 11 МЛН
C++/STL中[]操作符和at()函数的区别
13:01
Hua Hua
Рет қаралды 1,6 М.
Binary Search Tree Episode 06: Node Deletion
45:25
Shieth شِيث
Рет қаралды 14
【每日一题】1478.Allocate Mailboxes, 7/17/2020
28:30
Huifeng Guan
Рет қаралды 2,2 М.