在IDE中刷LeetCode,編碼調(diào)試一體化,刷題效率直線up!
點擊上方“視學(xué)算法”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達(dá)
明敏 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
還在為刷LeetCode效率低而煩惱嗎?
今天為大家?guī)韮蓚€干貨分享,讓你的刷題效率up up up!

首先,工欲善其事必先利其器。
第一份干貨來自網(wǎng)友在GitHub上分享的一份教程:在IDE中刷題,讓編碼調(diào)試一體化。
聽起來有點意思啊,讓我們來看看是怎么實現(xiàn)的~
使用教程
安裝:
首先,需要安裝插件leetcode-editor:https://plugins.jetbrains.com/plugin/12132-leetcode-editor
然后下載文件安裝:https://github.com/shuzijun/leetcode-editor/releases
配置:
第一次安裝需要先配置,配置路徑如下:File->settings->tools->leetcode plugin
URL可選項:leetcode.com與leetcode-cn.co
CodeType:Java,Python,C++,Python3,C,C#,JavaScript,Ruby,Swift,Go ,Scala,Kotlin,Rust,PHP,Bash,SQL
LoginName: 登錄用戶名
Password: 登錄密碼
Temp File Path: 臨時文件存放目錄
proxy(HTTP Proxy): 使用http代理,配置路徑:File ->settings->Appearance & Behavior->System Settings->HTTP Proxy
Custom code template: 自定義代碼生成模板
這一步作者給出了詳細(xì)介紹和示例:
通過配置自定義代碼生成模板可以自由生成代碼格式,配合IDE可在本地調(diào)試代碼。

Custom code template: 開啟使用自定義模板,否則使用默認(rèn)生成格式
CodeFileName: 生成文件的名稱,默認(rèn)為題目標(biāo)題
CodeTemplate: 生成題目代碼的內(nèi)容,默認(rèn)為題目描述和題目代碼
TemplateConstant:模板常用變量
${question.title}:題目標(biāo)題,例如:兩數(shù)之和
${question.titleSlug}:題目標(biāo)記,例如:two-sum
${question.frontendQuestionId}:題目編號,例如:1
${question.content}:題目描述內(nèi)容
${question.code}:題目代碼部分
$!velocityTool.camelCaseName(str):一個函數(shù),用來將字符串轉(zhuǎn)化為駝峰樣式
注意:在生成的自定義代碼中包含兩行關(guān)鍵信息
leetcode submit region begin(Prohibit modification and deletion):提交到leetcode進(jìn)行驗證的代碼開始標(biāo)記
leetcode submit region end(Prohibit modification and deletion):提交到leetcode進(jìn)行驗證的代碼結(jié)束標(biāo)記
這兩行標(biāo)記標(biāo)示了提交到leetcode服務(wù)器進(jìn)行驗證的代碼范圍,在此范圍內(nèi)只允許有出現(xiàn)與題目解答相關(guān)的內(nèi)容,出現(xiàn)其他內(nèi)容可能導(dǎo)致leetcode驗證不通過。
除了此范圍內(nèi),其他區(qū)域是可以任意填寫的,內(nèi)容不會提交到leetcode,可以增加一些可以本地調(diào)試的內(nèi)容,例如:import java.util.Arrays;
所以,這兩行內(nèi)容是不能被刪除和修改的,否則將識別不到提交的內(nèi)容。
可參考示例:
CodeFileName:
$!velocityTool.camelCaseName(${question.titleSlug})TemplateConstant:
${question.content}package com.shuzijun.leetcode.editor.en;public class $!velocityTool.camelCaseName(${question.titleSlug}){public static void main(String[] args) {Solution solution = new $!velocityTool.camelCaseName(${question.titleSlug})().new Solution();}${question.code}}
最后還有兩步即可完成配置:
LevelColour: 自定義題目難度顏色,重啟后生效
English Content: 題目顯示英文描述
安裝后窗口界面如下:
工具欄:
登錄:兩個網(wǎng)站的登錄帳號不互通,切換網(wǎng)站需配置對應(yīng)的用戶
退出:退出當(dāng)前賬戶,如遇到登錄錯誤,嘗試先進(jìn)行退出
刷新:在未登錄的情況下也可查看刷新加載題目,但是無法提交
查找:輸入內(nèi)容后回車搜索,再次回車搜索下一個,只會搜索題庫節(jié)點下
折疊:折疊全部節(jié)點.
配置:快捷跳轉(zhuǎn)到配置界面
清理:清理配置的緩存目錄下的文件,兩個網(wǎng)站對應(yīng)的緩存目錄不同,只會清理當(dāng)前配置的網(wǎng)站下的。部分題目未提交的情況下慎重清理
樹:
Problems:全部題目
Difficulty:難度分類
Tags:類型分類
Explore:探索內(nèi)容,只包含題目,收費內(nèi)容不支持;部分題目加載有順序限制
顏色:題目顏色代表題目難度
符號:題目前√與?代表當(dāng)前題目解答狀態(tài),探索下有 $ 開頭的為付費或者其他情況下無法查看的
菜單

菜單(在題目上右擊出現(xiàn))
open question:打開題目,在題目上雙擊也可以打開
open content:查看描述,包含圖片(依賴 Markdown)
Submit:提交題目
Submissions:查看提交記錄,在彈出的窗口上選擇記錄查看詳情(Show detail)
Run Code:運行代碼,默認(rèn)使用題目的測試用例
Testcase:自定義測試用例
favorite:添加或移除收藏
Clear cache:清理當(dāng)前題目
Timer:計時器,開啟后在右下角狀態(tài)欄提示解題時間
Editor菜單(在Editor上右擊出現(xiàn)):功能同上
使用效果
最終的使用效果如下,可以在IDE中選擇leetcode-editor插件及使用的編程語言,然后點擊力扣圖標(biāo),就能在菜單中選擇題目開始刷題了。

并且可以將寫好的代碼在本地調(diào)試,方便快捷了許多。

你可能還想要一個刷題攻略
除了強大的工具外,一份好用的刷題攻略也必不可少。
GitHub上有網(wǎng)友分享出了自己總結(jié)的一套算法模板,并且他靠著這份模板刷題,成功拿到了字節(jié)跳動的offer!

其中的關(guān)鍵就是作者總結(jié)了一套練習(xí)題,他把題目類型進(jìn)行了劃分、并對基礎(chǔ)知識點進(jìn)行了講解,刷一遍練習(xí)題后再上手LeetCode,知識點掌握地會更加牢固。(對題庫感興趣的小伙伴可以在文末鏈接自提)
有了以上強大的工具和秘籍,就可以開始愉快地刷題了。
希望教程能對大家有所幫助,歡迎在評論區(qū)分享交流刷題經(jīng)驗~
教程鏈接
leetcode-editor:https://github.com/shuzijun/leetcode-editor
練習(xí)題網(wǎng)站:https://greyireland.gitbook.io/algorithm-pattern/
算法模板:https://github.com/greyireland/algorithm-pattern
— 完 —
本文系網(wǎng)易新聞?網(wǎng)易號特色內(nèi)容激勵計劃簽約賬號【量子位】原創(chuàng)內(nèi)容,未經(jīng)賬號授權(quán),禁止隨意轉(zhuǎn)載。

點個在看 paper不斷!
