LeetCode(面試)中寫出乾淨的程式碼(小技巧合集)
COMMON TIPS FOR CLEAN CODE
1 Calculate sum of a range quickly --using pre sum array
2 Move in four directions for a matrix --注意邊界 用4 way dfs
3 Split string by multiple separators --?LeetCode: Brace Expansion
4 Add a dummy tailing element to simplify code -?LeetCode: Brace Expansion
5 Fast slow pointers–這個是很常見的技巧 就不多說了
6 Deep copy an array --?LeetCode: Combination Sum
7 Use arrays instead of hashmaps, if possible – 這個也是常見技巧 但是自己很少注意 因為雖然能看懂 但是寫的時候多加了一層 費腦子
8 Control the order of dfs --?LeetCode: Subsets II
9 Avoid inserting into the head of an array --這個是常用的技巧,比如說我們zigzag level order.我們可以正常level order只是要加一個flag
10 From right to left, instead of left to right --這個技巧之前應該用過 但是不太記得什麼典型的題目了 LeetCode: Merge Sorted Array?
11 Think the other way around --說的輕巧 Add Items vs Remove Items, Increase Counter vs Decrease Counter(這個counter的之前還見過不少 因為我都死腦筋從0加到n 而沒有自己想過從n減到0)
12 Avoid unnecessary if…else… --就是說 多用用lambda表示式
13 To get the case of K, solve: at most K – at most (K-1) --要學會轉化問題 用逆遞進的方式來解決問題 LeetCode: Subarrays with K Different Integers
14 Instead of deleting entry from hashmap, decrease counter --沒有明白是什麼意思?counter只能對元素個數進行實時更新 而如果我們仍要對hashmap裡面元素進行取用的時候 那之前不刪除的話會影響結果的啊
15 Find the max/min; If not found, return 0 --? LeetCode: Minimum Area Rectangle
16 With helper function vs without helper function --意思就是 能拆成單獨模組的最好要拆 這樣體現出來你清晰的思路 LeetCode: Longest Repeating Character Replacement
17 Instead of adding a character, try to delete one --?這特麼是啥意思?LeetCode: Longest String Chain
18 #roudtrippass: from left to right, then right to left --?LeetCode: Shortest Distance to a Character
19 Delayed calculation to simplify the code --? LeetCode: Interval List Intersections
20 Instead of removing, add padding elements --? LeetCode: Duplicate Zeros
21 Initialize array with n+1 length to simplify code --這個在DP裡面經常用 在某些非DP問題裡面也經常用 LeetCode: Range Addition
22 Look for off-by-one errors, sometimes use i+1<len(l) vs i<len(l) --?這個i具體停在哪裡不是由題目決定的嗎?LeetCode: Previous Permutation With One Swap
23 Hashmap can reduce calculation, but may complicate things too --?這話說的倒沒錯 但是它易於理解 有什麼錯嗎?LeetCode: Maximum Frequency Stack
24 Sliding window to get the longest size of subarray --常見的sliding window技巧 LeetCode: Max Consecutive Ones III
25 In matrix dfs, change cell to impossible value to avoid state hashmap --?說什麼錘子呢?LeetCode: Word Search II
26 For palindrome check, check the whole string, instead of left half --? LeetCode: Longest Chunked Palindrome Decomposition
27 Use queue to keep flipping the orders LeetCode: Zigzag Iterator
28 Find a pair with sum meets some requirements --?這也能叫技巧?LeetCode: Two Sum
29 Add a dummy head node for linked list --這個就很常見了 一旦涉及到頭部處理變化 就必須dummy node LeetCode: Reverse Linked List
30 When count sort, use one array instead of two LeetCode: Minimum Number of Steps to Make Two Strings Anagram
31 Hide details which are irrelevant --?說什麼抽象話呢?怎麼隱藏這種東西?
32 One pass instead of two pass --有些follow up會要求我們只遍歷一遍 但是這算不上技巧吧 更像是屁話 我能遍歷一遍我會遍歷兩遍?
33 Avoid unnecessary precheck --簡直屁話 沒有必要我會Precheck?
34 Reduce search space Leetcode: Bulb Switcher II
相關文章
- 6個小技巧教你編寫乾淨整潔的程式碼
- 如何寫出優質乾淨的程式碼,這6個技巧你不能錯過!
- 乾淨的程式碼: 編寫可讀的函式函式
- ES6+好用的小技巧,讓你的程式碼更乾淨,短巧,易讀
- php乾淨程式碼PHP
- 程式碼簡潔之道:編寫乾淨的 React Components & JSXReactJS
- 如何在 ASP.NET Core 中寫出更乾淨的 ControllerASP.NETController
- 9個JavaScript小技巧:寫出更簡潔,高效程式碼JavaScript
- 【乾貨】Java崗面試考點大合集Java面試
- 面試官:如何寫出讓 CPU 跑得更快的程式碼?面試
- js手寫程式碼合集JS
- JS面試手寫程式碼JS面試
- 面試官常說,培訓機構出身的程式設計師“程式碼不乾淨”,為什麼?面試程式設計師
- Java乾貨神總結,程式設計師面試技巧Java程式設計師面試
- 【譯】12個編寫乾淨且可擴充套件的JavaScript技巧套件JavaScript
- 讀書筆記-乾淨程式碼筆記
- 想寫出優雅的程式碼?試試這些ES6小tips
- 乾淨程式碼的幾個特點 -Xebia
- 老程式設計師的10個程式設計小技巧,教你寫出高質量程式碼!程式設計師
- 經驗之談:程式碼該怎樣寫才能乾淨整潔
- 使用 React 和 TypeScript something 編寫乾淨程式碼的10個必知模式ReactTypeScript模式
- 一些 JavaScript 中的程式碼小技巧JavaScript
- 面試合集面試
- 這些資深程式設計師的程式設計小技巧,教你寫出高質量程式碼!程式設計師
- 網際網路大廠內推+面試乾貨合集面試
- PHP面試合集PHP面試
- 乾貨技巧,微信小程式推廣運技巧祕籍微信小程式
- JavaScript修飾器-讓程式碼更乾淨JavaScript
- iOS開發小技巧合集iOS
- 騰訊前端一面經典手寫面試題合集前端面試題
- [譯] 不用祖傳祕方 - 寫好程式碼的幾個小技巧
- 小程式面試題面試題
- 架構師面試的幾個小技巧 - nickbulljs架構面試JS
- 值得收藏的手寫程式碼面試題及思路解析面試題
- 「奇淫技巧」如何寫最少的程式碼
- Reviewbot 開源 | 這些寫 Go 程式碼的小技巧,你都知道嗎?ViewGo
- Hbuilder快速程式碼編寫技巧UI
- 中軟卓越:Java程式設計師面試技巧3Java程式設計師面試