軟體/韌體工程師《面試重點與觀念複習》: Leetcode實戰討論

本文章 目錄:
--- 面試須知與應答技巧
--- 資料結構 / 變數儲存與記憶體
--- 程式語言 / 演算法
--- 作業系統 / 多執行緒(多程序)的觀念與實作控制
--- 轉自ptt: [重要] 發文前務必閱讀:C/C++常見問題十三誡
--- 擬真試題1/擬真試題2/擬真試題3/擬真試題4
--- 直接列出考古題1(精華完整53題含解答)
--- 直接列出考古題2(精華完整35題含解答)
--- 深度討論考古題1(DEMO完整10題含解答) 選擇使用C,C++,C#或JAVA
--- 深度討論考古題2(DEMO完整11題含解答) 選擇使用C,C++,C#或JAVA
--- 撲克牌(大老二)洗牌與牌型判斷(JAVA)
--- Python基本教學
--- Leetcode實戰討論

Leetcode實戰討論

線上知名的 Leetcode網站裡面有許多演算法考題, 內容以英文方式陳述不論是外商或是台商企業都適用, 軟體也有各式程式語言, C/C++/JAVA/Python/Javascript/Ruby/Swift/Go/Scala/kotlin/Rust/PHP, 涵蓋領域很廣, 演算法可以比喻為軟體開發的內功, 而這些程式語言為外在的武功招式, 臨場要表現好要視該職缺的程式語言武功招式, 搭配強大的邏輯演算法內功才能發揮最大表現, 多練習提高自我能力為不二法門! 目前內容為976題, 分為 Easy/ Midium/ Hard, 我們再逐步加入熱門題型的演練:

Easy:

難度為容易的等級, 可以先挑easy的題目建立手感以及熟悉度!

* Same Tree:

給定兩個二叉樹,編寫一個函數來檢查它們是否相同。
如果兩個二叉樹在結構上相同並且節點具有相同的值,則認為它們是相同的。

解法:

* Roman to Integer:

羅馬數字由七個不同的符號表示:I,V,X,L,C,D和M.
Symbol – Value
I – 1
V – 5
X – 10
L – 50
C – 100
D – 500
M – 1000
 
例如,兩個用羅馬數字寫成II,只有兩個加在一起。 十二寫為XII,簡稱為X + II。 第二十七號寫成XXVII,即XX + V + II。 羅馬數字通常從左到右從最大到最小。 但是,4這個數字不是IIII,而是為IV。 因為一個在五個之前,我們減去四個。 同樣的原則適用於九號,即九號。 有六個使用減法的實例:

I可以放在 V(5)和 X(10)之前表達 4 和 9。
X可以放在 L(50)和 C(100)之前,以產生40和90。
C可以放在 D(500)和 M(1000)之前,以產生400和900。
給定羅馬數字,將其轉換為整數。 輸入保證在1到3999的範圍內。
Example 1:
Input: “III”
Output: 3

Example 2:
Input: “IV”
Output: 4

Example 3:
Input: “IX”
Output: 9

Example 4:
Input: “LVIII”
Output: 58
Explanation: L = 50, V= 5, III = 3.

Example 5:
Input: “MCMXCIV”
Output: 1994
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.

解法:

* Two Sum:

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

Reverse Integer

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:
Input: 123
Output: 321

Example 2:
Input: -123
Output: -321

Example 3:
Input: 120
Output: 21

Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−2^31, 2^31 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

解答:

* Search Insert Position

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

You may assume no duplicates in the array.

Example 1:
Input: [1,3,5,6], 5
Output: 2

Example 2:
Input: [1,3,5,6], 2
Output: 1

Example 3:
Input: [1,3,5,6], 7
Output: 4

Example 4:
Input: [1,3,5,6], 0
Output: 0

解答:

Medium:

陸續新增中…

* Add Two Numbers

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

Example:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.

解答:

筆記轉型成部分不對外開放。
閱讀請繳交3,280元,您就會收到授權一年的邀請函Email,以及紙本重點筆記郵寄給您!

匯款帳號請來信詢問, 站長信箱:eeepage@gmail.com
匯款後,請告知您的帳號後三碼與您Gmail作為帳號,易春木會寄出權限開啟之邀請函,三個工作日內可開啟權限。
(*若需信用卡支付, 請來信詢問)

Hard:

陸續新增中…

本文章 目錄:
--- 面試須知與應答技巧
--- 資料結構 / 變數儲存與記憶體
--- 程式語言 / 演算法
--- 作業系統 / 多執行緒(多程序)的觀念與實作控制
--- 轉自ptt: [重要] 發文前務必閱讀:C/C++常見問題十三誡
--- 擬真試題1/擬真試題2/擬真試題3/擬真試題4
--- 直接列出考古題1(精華完整53題含解答)
--- 直接列出考古題2(精華完整35題含解答)
--- 深度討論考古題1(DEMO完整10題含解答) 選擇使用C,C++,C#或JAVA
--- 深度討論考古題2(DEMO完整11題含解答) 選擇使用C,C++,C#或JAVA
--- 撲克牌(大老二)洗牌與牌型判斷(JAVA)
--- Python基本教學
--- Leetcode實戰討論

發表迴響