神器!在IDE中刷LeetCode,刷題效率直線up!

2022-01-01 機器學習算法與Python學習




點擊 機器學習算法與Python學習選擇加星標

精彩內容不迷路

量子位 報導 | 公眾號 QbitAI

今天為大家帶來兩個乾貨分享,讓你的刷題效率up up up!

首先,工欲善其事必先利其器。

第一份乾貨來自網友在GitHub上分享的一份教程:在IDE中刷題,讓編碼調試一體化。

聽起來有點意思啊,讓我們來看看是怎麼實現的~

使用教程安裝:

首先,需要安裝插件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: 自定義代碼生成模板

這一步作者給出了詳細介紹和示例:

通過配置自定義代碼生成模板可以自由生成代碼格式,配合IDE可在本地調試代碼。

Custom code template: 開啟使用自定義模板,否則使用默認生成格式

CodeFileName: 生成文件的名稱,默認為題目標題

CodeTemplate: 生成題目代碼的內容,默認為題目描述和題目代碼

TemplateConstant:模板常用變量

${question.title}:題目標題,例如:兩數之和
${question.titleSlug}:題目標記,例如:two-sum
${question.frontendQuestionId}:題目編號,例如:1
${question.content}:題目描述內容
${question.code}:題目代碼部分
$!velocityTool.camelCaseName(str):一個函數,用來將字符串轉化為駝峰樣式

注意:在生成的自定義代碼中包含兩行關鍵信息

這兩行標記標示了提交到leetcode伺服器進行驗證的代碼範圍,在此範圍內只允許有出現與題目解答相關的內容,出現其他內容可能導致leetcode驗證不通過。

除了此範圍內,其他區域是可以任意填寫的,內容不會提交到leetcode,可以增加一些可以本地調試的內容,例如:import java.util.Arrays;

所以,這兩行內容是不能被刪除和修改的,否則將識別不到提交的內容。

可參考示例:

#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}
}

最後還有兩步即可完成配置:

安裝後窗口界面如下:

工具欄:

登錄:兩個網站的登錄帳號不互通,切換網站需配置對應的用戶
退出:退出當前帳戶,如遇到登錄錯誤,嘗試先進行退出
刷新:在未登錄的情況下也可查看刷新加載題目,但是無法提交
查找:輸入內容後回車搜索,再次回車搜索下一個,只會搜索題庫節點下
摺疊:摺疊全部節點.
配置:快捷跳轉到配置界面
清理:清理配置的緩存目錄下的文件,兩個網站對應的緩存目錄不同,只會清理當前配置的網站下的。部分題目未提交的情況下慎重清理

樹:

Problems:全部題目
Difficulty:難度分類
Tags:類型分類
Explore:探索內容,只包含題目,收費內容不支持;部分題目加載有順序限制
顏色:題目顏色代表題目難度
符號:題目前√與?代表當前題目解答狀態,探索下有 $ 開頭的為付費或者其他情況下無法查看的

菜單

菜單(在題目上右擊出現)

open question:打開題目,在題目上雙擊也可以打開
open content:查看描述,包含圖片(依賴 Markdown)
Submit:提交題目
Submissions:查看提交記錄,在彈出的窗口上選擇記錄查看詳情(Show detail)
Run Code:運行代碼,默認使用題目的測試用例
Testcase:自定義測試用例
favorite:添加或移除收藏
Clear cache:清理當前題目
Timer:計時器,開啟後在右下角狀態欄提示解題時間

Editor菜單(在Editor上右擊出現):功能同上

使用效果

最終的使用效果如下,可以在IDE中選擇leetcode-editor插件及使用的程式語言,然後點擊力扣圖標,就能在菜單中選擇題目開始刷題了。

並且可以將寫好的代碼在本地調試,方便快捷了許多。

你可能還想要一個刷題攻略

除了強大的工具外,一份好用的刷題攻略也必不可少。

GitHub上有網友分享出了自己總結的一套算法模板,並且他靠著這份模板刷題,成功拿到了字節跳動的offer!

其中的關鍵就是作者總結了一套練習題,他把題目類型進行了劃分、並對基礎知識點進行了講解,刷一遍練習題後再上手LeetCode,知識點掌握地會更加牢固。(對題庫感興趣的小夥伴可以在文末連結自提)

有了以上強大的工具和秘籍,就可以開始愉快地刷題了。

希望教程能對大家有所幫助,歡迎在評論區分享交流刷題經驗~

教程連結
leetcode-editor:https://github.com/shuzijun/leetcode-editor
練習題網站:https://greyireland.gitbook.io/algorithm-pattern/
算法模板:https://github.com/greyireland/algorithm-pattern

相關焦點

  • leetcode刷題最強指南(版本1.0)
    為什麼會有這篇刷題指南很多剛開始刷題的同學都有一個困惑:面對leetcode上近兩千道題目,從何刷起
  • leetcode刷對了麼
    對所有求職技術崗位的童鞋來說,有這麼一樣東西恐怕做夢都會夢到【Leetcode】,繞都繞不過去的程式設計師刷題神器。 「哲學是世界觀和方法論的統一,是具體科學知識的概括與總結。」 為什麼一定是leetcode Leetcode是注重算法的刷題工具,在考算法的筆試面試中,碰見原題的概率可算是非常大: @飛龍:面試向算法,感覺沒有比leetcode更合適的訓練方法了。短期刷用處也很大,如果你對代碼有感覺的話,一些巧妙的解法你看一眼就會忘不了。
  • 靠LeetCode刷題模板,學妹「開獎」騰訊offer!
    學妹說,考研失利後倉促求職,經歷一系列失敗後,套著模板刷了200題,秋招開大獎:拿下騰訊offer!△1個月200道LeetCode無壓力直白說,現在面大廠刷題+八股文是標配。很多人頭疼題太多、刷不完、刷完就忘的問題,都能靠一套leetcode刷題模板解決,80%面試題直接秒!
  • 【每日一題】leetcode刷題指南之Longest Consecutive Sequence
    假設我們碰到一個數i,要求包含這個數的連續序列的長度我們會去向左找i-1、i-2、i-3…是否在數組中,再向右找i+1、i+2、i+3…是否在序列中,直到找到第一個不在數組中的為止,然後即可知道i所在序列的長度。
  • LeetCode刷題第三周【數組(簡單)】
    刷題前我們來了解一下什麼是數組:數組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按有序的形式組織起來的一種形式。首先,數組會利用 索引 來記錄每個元素在數組中的位置,且在大多數程式語言中,索引是從 0 算起的。我們可以根據數組中的索引,快速訪問數組中的元素。事實上,這裡的索引其實就是內存地址。
  • 刷 LeetCode 吃力正常嗎?
    樓主應該還想問怎麼刷這類oj比較合理,下面是個人一些經驗,僅供參考。首先要確定刷題的目標,如果不是為了面試,那麼節奏完全可以個人把握。如果是面試那麼個人以為很多答主的方法實際上是有問題的。每道題要有time constraint。大部分oj的題目如果需要想+寫超過半小時,那就等於完全不會。實際面試中(任何考試中),你碰到的題目是不可能讓你做超過1天的。
  • LeetCode按照怎樣的順序來刷題比較好?
    分享一下身邊大神的刷題順序:如果你時間比較緊迫,為了找工作而刷題,我建議你先刷熱門推薦,一共兩百多道題。先刷熱題 HOT 100,再刷精選 TOP 面試題,之後刷其他的題。如果你時間比較充裕,那我建議你:按從低到高的難度分組刷按 tag 分類刷定期複習,重做之前刷過的題掌握 LeetCode 刷題方法再開始刷題,屬於磨刀不誤砍柴工。
  • leetcode刷題指南之PatchingArray
    問: 最少需要往數組中添加多少個數才能使得1 ~ n的數都能由數組中若干數的和得到?掃描數組, 令sum表示當前我們能得到1 ~ sum的值。那麼接下來的數x如果小於等於sum+1, 那麼我們直接加進來更新sum的值(sum += x), 否則, 我們為了得到sum+1這個數, 我們必然要加入一個數。顯然加入sum+1這個數是最優決策。
  • leetcode刷題指南之RussianDollEnvelopes
    不過,我們也可以發現一個現象,就是排在後面的是顯然不可能放進前面裡的,也就是說,最終的答案一定是在排序後的數組中依次出現的,相當於是排序後的一個子序列。這樣,這道題目就成了一個經典的dp問題,即最長上升子序列問題。接下來我們就可以寫一個O(n^2)的最長上升子序列,或者也可以寫一個O(nlgn)的算法。3.
  • LeetCode 刷題指南(1):為什麼要刷題
    ,不過不可否認刷題確實能鍛鍊我們的編程能力,相信每個認真刷題的人都會有體會。Heap:特殊的完全二叉樹,「等級森嚴」,可以用 O(nlogn) 的時間複雜度來進行排序,可以用 O(nlogk) 的時間複雜度找出 n 個數中的最大(小)k個,具體可以看看 347. Top K Frequent Elements。算法:時間空間我們知道,除了數據結構,具體算法在一個程序中也是十分重要的,而算法效率的度量則是時間複雜度和空間複雜度。
  • leetcode刷題指南之shortestPalindrome
    因為h是s逆轉來的,相當於在相等的這段後綴串中是滿足上述條件的,所以只需要把不滿足條件的前k個字母放到s的後面即可。再進一步抽象,我們需要找到一個h的一個最長的前綴,使得它等於s的後綴。舉個例子: 假設題目給出的串是aacecaaa,則s=aaacecaa, h=aacecaaa,我們同時從s的下標0往下走和從h的下標7往前走。
  • 【SQL刷題系列】:leetcode180 Consecutive Numbers
    點擊上方 ↑ 藍色關注「Python數據科學」SQL刷題系列:SQL作為一種資料庫查詢和程序設計語言,是從事數據技術人員必備的技能,也是各大公司的數據分析、數據挖掘、資料庫等筆試題必考的一種題。為此,Python數據科學開啟了SQL刷題的系列,希望可以幫助有需要的朋友們。
  • Leetcode刷題招工面試經驗整理(1)
    刷題就是寫作業,對基本的數據結構和算法理解不深,只是知道個大概就刷題,實在是效率低。我們可以先做一個大致的評估:請人在Leetcode所有分類tag裡都隨機抽取三道easy題(你並不知道題目類型),嘗試一下:如果做到了第一層,可以直接刷題,在刷題中學習;做到了第二、三層,還應該再複習一遍Cracking the Coding Interview或者相關資料,再動手刷題;第三層也做不到,應該在學校裡面選一門經典入門的數據結構與算法相關課程,認認真真上一遍,再來刷題
  • 【Leetcode刷題練Python】1. 兩數之和
    Leetcode,這個大名鼎鼎的刷題神器,對於將要入行碼農行業或已是碼農的猿猿們來說,是必不可少的的練習工具。但可能還有很多小猿們還不知道它。
  • leetcode刷題指南之PalindromePairs
    對於每個字符串s,枚舉分割點pos,滿足[pos ~ s.size()-1]是回文串,且[0 ~ pos-1]的逆串在map中存在。時間複雜度為O(n*K)。算法的正確性:方法一無需舉例。= i)25                    ans.push_back({ma[r], i});26            }27        }28        return ans;29    }30};作者:東大ACM退役隊伍編輯:劉凱旋推薦閱讀:leetcode刷題指南之
  • leetcode 刷500道題,筆試/面試穩嗎?
    如果我在 leetcode 堅持刷它個 500 道題,以後筆試/面試穩嗎?這裡我說下我的個人看法,我認為不穩。下面說說為啥不穩以及算法題應該如何刷、如何學才比較好,當然,也會推薦自己學過的資料。一、先說說筆試題在刷 leetcode 的時候,你會發現,每道題的題意都很短,你只需要花十幾秒的時間,就知道這道題是要你幹嘛了,並且每道題所用道的算法思想都很明確,動態規劃、遞歸、二分查找等,你可能很快就知道該用哪種方法,只是你不懂如何把代碼寫出來而已。
  • leetcode刷題指南之findtheduplicatenumber
    給出一個長度為n+1的數組,其中每個數字的範圍是[1,n],其中只有一個重複的數,現在要求找出這個重複的數,並且滿足以下條件:不能改動原始數組除了原始數組,只能另外開闢O(1)的空間算法複雜度一定要小於O(n^2)重複的那個數可能重複不止一次初看這題可能有很多種方式
  • C#刷遍Leetcode面試題系列連載(1) - 入門與工具簡介
    而這些公司,大多數會以 LeetCode 中的題目或基於 LeetCode 改進後的自家算法題庫來考察候選人。於是想進入上述大廠,定期做 LeetCode 題目很有必要。即使沒打算進這些大廠,堅持做LeetCode,個人的算法水平、編程能力也會有較大提升。本文主要介紹 .NET 開發者如何入手刷 LeetCode 面試題。
  • 刷了幾千道算法題,我私藏的刷題網站都在這裡了
    然而我是誰,我可是死狗中的戰鬥雞,智力不夠那刷題來湊,開始了夜以繼日哼哧哼哧刷題的日子,從此"讀題與提交齊飛, AC 與 WA 一色 ",我驚喜的發現被題虐既刺激又有快感,那一刻我淚流滿面。這麼好的事兒作為一個正直的人絕不能自己獨享,經過激烈的顱內鬥爭,我決定把我私藏的十幾個 T 的,阿不,十幾個刷題網站放出來,讓我們一起爽!
  • 《LeetCode刷題Java版答案》pdf來了
    很多朋友在後臺留言說,刷LeetCode上的數據結構+算法題時難免會遇到困難,想要找一本答案題解做參考。