这是indexloc提供的服务,不要输入任何密码
Skip to content

刷算法全靠套路,认准 labuladong 就够了!English version supported! Crack LeetCode, not only how, but also why.

Notifications You must be signed in to change notification settings

Resume0/fucking-algorithm

 
 

Repository files navigation

English version repo and Gitbook is on english branch. Just enjoy:)

labuladong 的算法小抄

Website GitHub

本仓库总共 60 多篇原创文章,都是基于 LeetCode 的题目,涵盖了所有题型和技巧,而且一定要做到举一反三,通俗易懂,绝不是简单的代码堆砌,后面有目录。

我先吐槽几句。刷题刷题,刷的是题,培养的是思维,本仓库的目的就是传递这种算法思维。我要是只写一个包含 LeetCode 题目代码的仓库,有个锤子用?没有思路解释,没有思维框架,顶多写个时间复杂度,那玩意一眼就能看出来。

只想要答案的话很容易,题目评论区五花八门的答案,动不动就秀 python 一行代码解决,有那么多人点赞。问题是,你去做算法题,是去学习编程语言的奇技淫巧的,还是学习算法思维的呢?你的快乐,到底源自复制别人的一行代码通过测试,已完成题目 +1,还是源自自己通过逻辑推理和算法框架不看答案写出解法?

网上总有大佬喷我,说我写这玩意太基础了,根本没必要啰嗦。我只能说大家刷算法就是找工作吃饭的,不是打竞赛的,我也是一路摸爬滚打过来的,我们要的是清楚明白有所得,不是故弄玄虚无所指。不想办法做到通俗易懂,难道要上来先把《算法导论》吹上天,然后把人家都心怀敬仰地劝退?

做啥事情做多了,都能发现套路的,我把各种算法套路框架总结出来,相信可以帮助其他人少走弯路。我这个纯靠自学的小童鞋,花了一年时间刷题和总结,自己写了一份算法小抄,后面有目录,这里就不废话了。

使用方法

1、先给本仓库点个 star,满足一下我的虚荣心,文章质量绝对值你一个 star。我还在继续创作,给我一点继续写文的动力,感谢。

2、建议收藏我的 Gitbook 网站,每篇文章开头都有对应的力扣题目链接,可以边看文章边刷题

Gitbook 地址:https://labuladong.gitbook.io/algo/

2、建议关注我的公众号 labuladong,坚持高质量原创,说是最良心最硬核的技术公众号都不为过。本仓库的文章就是从公众号里整理出来的一部分内容,公众号后台回复关键词【电子书】可以获得这份小抄的完整版本;回复【加群】可以加入我们的刷题群,和大家一起讨论算法问题,分享内推机会:

4、欢迎关注 我的知乎

我一直在写优质文章,但是后续的文章只发布到公众号/gitbook/知乎,不能开放到 GitHub。因为本仓库太火了,很多人直接拿我的文章去开付费专栏,价格还不便宜,我这免费写给您看,何必掏冤枉钱呢?所以多多关注本作者,多多宣传,谁也不希望劣币驱逐良币不是么?

其他的先不多说了,直接上干货吧,我们一起搞定 LeetCode,感受一下支配算法的乐趣。

目录

感谢如下大佬参与翻译

按照昵称字典序排名:

ABCpril, andavid, bryceustc, build2645, CarrieOn, cooker, Dong Wang, ExcaliburEX, floatLig, ForeverSolar, Fulin Li, Funnyyanne, GYHHAHA, Hi_archer, Iruze, Jieyixia, Justin, Kevin, Lrc123, lriy, Lyjeeq, MasonShu, Master-cai, miaoxiaozui2017, natsunoyoru97, nettee, PaperJets, qy-yang, realism0331, SCUhzs, Seaworth, shazi4399, ShuozheLi, sinjoywong, sunqiuming526, Tianhao Zhou, timmmGZ, tommytim0515, upbin, wadegrc, walsvid, warmingkkk, Wonderxie, wsyzxxxx, xiaodp, youyun, yx-tan, Zero, Ziming

Donate

如果本仓库对你有帮助,可以请作者喝杯速溶咖啡

With main As ( SELECT CTM.main_id , CTM.task_no , CTM.main_task_flg , CTM.business_cd , MAX(task_sub_no) AS task_sub_no FROM tb_wlt_create_task_mng CTM WHERE CTM.main_id = '0000151573' GROUP BY CTM.main_id , CTM.task_no , business_cd , CTM.main_task_flg ) , CTM As ( Select CTM.task_no , CTM.task_sub_no , CTM.title , CTM.delivery_id , CTM.working_time , CTM.delivery_unit , CTM.business_cd , CTM.end_date , CTM.effectivedate , CTM.delivery_date , CTM.main_task_flg From tb_wlt_create_task_mng CTM Join main On main.task_no = CTM.task_no And CTM.task_sub_no = main.task_sub_no ) , typeDiv As ( SELECT CTT.task_no , string_agg(tcm.code_name, '/') typeDivCd FROM tb_wlt_create_task_type CTT Join CTM On CTM.task_no = CTT.task_no Join tb_wlt_table_code_mst tcm On CTT.type = tcm.code AND tcm.category_cd = '320' GROUP BY CTT.task_no ) , Delivery As ( SELECT DTD.delivery_id , Case CTM.delivery_unit When '00' Then shopcd When '01' Then mail_to End delivery_to FROM tb_wlt_delivery_task_def DTD Join CTM On CTM.delivery_id = DTD.delivery_id And DTD.mail_type = 'To' Group by DTD.delivery_id , Case CTM.delivery_unit When '00' Then shopcd When '01' Then mail_to End ) SELECT -- json_agg( -- json_build_array( task_no2 , code , code_name , delivery_date , end_date , working_time , title , business_cd , send_to , delivery_unit , code_name2 , typeDivCd , department_nm , end_date2 , effectivedate2 , delivery_date2 , repeat_flg , management_flg , main_task_flg , task_no -- ) -- ) FROM ( SELECT DISTINCT replace (CTM.task_no, 'WORK', '0000') task_no2 , statusTbl.code , statusTbl.code_name , TO_CHAR(CTM.delivery_date, 'yyyy/mm/dd hh24:mi') delivery_date , TO_CHAR(CTM.end_date, 'yyyy/mm/dd hh24:mi') end_date , CTM.working_time , replace (CTM.title, '<', '<') title , CTM.business_cd , CASE CTM.delivery_unit WHEN '01' THEN ( Select staff_nm From tb_wlt_mst_staff_alldata Where Delivery.delivery_to = crew_cd Limit 1 ) WHEN '00' THEN ( Select shop_nm From tb_wlt_mst_shop Where Delivery.delivery_to = shop_cd Limit 1 ) ELSE '' END send_to , CTM.delivery_unit , duCdMst.code_name code_name2 , typeDiv.typeDivCd , CASE WHEN STAFF1.DEPARTMENT_NM IS NOT NULL AND STAFF1.DEPARTMENT_NM != '' THEN STAFF1.DEPARTMENT_NM WHEN STAFF2.DEPARTMENT_NM IS NOT NULL AND STAFF2.DEPARTMENT_NM != '' THEN STAFF2.DEPARTMENT_NM END AS department_nm , TO_CHAR(CTM.end_date, 'yyyy/mm/dd hh24:mi:ss') end_date2 , TO_CHAR(CTM.effectivedate, 'yyyy/mm/dd hh24:mi:ss') effectivedate2 , TO_CHAR(CTM.delivery_date, 'yyyy/mm/dd hh24:mi:ss') delivery_date2 , twtlc.repeat_flg , CTA.management_flg , CTM.main_task_flg , CTM.task_no FROM CTM Join tb_wlt_task_loop_condition twtlc ON CTM.task_no = twtlc.task_no Join tb_wlt_create_task_admit CTA ON CTM.task_no = CTA.task_no And CTA.admit_status = '020' LEFT JOIN TB_WLT_MST_STAFF_ALLDATA AS STAFF1 ON CTA.apply_user = STAFF1.CREW_CD AND STAFF1.SHOP_TYPE = 'm' AND CASE WHEN CTA.management_flg = '1' THEN True ELSE STAFF1.auth IN ('020') END LEFT JOIN TB_WLT_MST_STAFF_ALLDATA AS STAFF2 ON CTA.apply_user = STAFF2.CREW_CD AND ( STAFF2.SHOP_TYPE IS NULL OR STAFF2.SHOP_TYPE != 'm' ) AND CASE WHEN CTA.management_flg = '1' THEN True ELSE STAFF2.auth IN ('020') END Left Join typeDiv ON typeDiv.task_no = CTM.task_no Left Join Delivery On CTM.delivery_id = Delivery.delivery_id Join tb_wlt_table_code_mst statusTbl On statusTbl.category_cd = '130' And CTA.admit_status = statusTbl.code Left Join tb_wlt_table_code_mst duCdMst On duCdMst.category_cd = '140' And CTM.delivery_unit = duCdMst.code Left Join tb_wlt_delivery_task_def DTD ON Delivery.delivery_id = DTD.delivery_id And DTD.mail_type = 'To' Left Join tb_wlt_mst_admit_mng MAM On MAM.admit_cd = '3019990002' And CTA.apply_user = MAM.crew_cd Left Join tb_wlt_mst_auth twma On twma.conf_type = '03' And twma.scr_cont1 = '1' WHERE Exists ( SELECT 1 FROM tb_wlt_mst_staff_alldata WHERE CTA.apply_user = crew_cd ) AND Case When CTA.management_flg = '1' Then Exists ( SELECT 1 FROM tb_wlt_mst_staff_alldata WHERE '3019990002' in ( management_crew_cd_1 , management_crew_cd_2 , management_crew_cd_3 , management_crew_cd_4 , management_crew_cd_5 ) And employment_type in ('4', '5') And DTD.mail_to = crew_cd ) Else Exists ( SELECT 1 FROM tb_wlt_mst_staff_alldata STAFF WHERE STAFF.crew_cd = MAM.admit_cd AND STAFF.auth = twma.auth_cd ) End ) RT

About

刷算法全靠套路,认准 labuladong 就够了!English version supported! Crack LeetCode, not only how, but also why.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published