力扣演算法 day1 今天的演算法學習

2021-09-13 09:31:36 字數 3457 閱讀 4606

感覺自己前兩天發布的時候忘了提自己為什麼要開這個系列了,特於19/3/23來補一下~

主要是前兩天想去面實習生,面了個大公司,然後一上來問我最簡單的演算法題我就不會。。。感覺太給川大人丟臉了,得努力了呢~好了,下面請看官們看正文~

-------------------------------------------我是分割線---------------------------------------- 

13. 羅馬數字轉整數

羅馬數字包含以下七種字元:ivxlcdm

字元          數值

i 1

v 5

x 10

l 50

c 100

d 500

m 1000

例如, 羅馬數字 2 寫做ii,即為兩個並列的 1。12 寫做xii,即為x+ii。 27 寫做xxvii, 即為xx+v+ii

通常情況下,羅馬數字中小的數字在大的數字的右邊。但也存在特例,例如 4 不寫做iiii,而是iv。數字 1 在數字 5 的左邊,所表示的數等於大數 5 減小數 1 得到的數值 4 。同樣地,數字 9 表示為ix。這個特殊的規則只適用於以下六種情況:

給定乙個羅馬數字,將其轉換成整數。輸入確保在 1 到 3999 的範圍內。

示例 1:

輸入: "iii"

輸出: 3

示例 2:

輸入: "iv"

輸出: 4

示例 3:

輸入: "ix"

輸出: 9

示例 4:

輸入: "lviii"

輸出: 58

解釋: l = 50, v= 5, iii = 3.

示例 5:

輸入: "mcmxciv"

輸出: 1994

解釋: m = 1000, cm = 900, xc = 90, iv = 4.

**:

class solution 

}result += map.get(s.charat(i));

} return result;

}}

第二題: 

14. 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。

如果不存在公共字首,返回空字串""

示例 1:

輸入: ["flower","flow","flight"]

輸出: "fl"

示例 2:

輸入: ["dog","racecar","car"]

輸出: ""

解釋: 輸入不存在公共字首。

說明:

所有輸入只包含小寫字母a-z

**:

class solution 

if(len < minlen)

} for(int i = 0; i < minlen; i++)

else break;

}return result;

}public static boolean pair(string strs,int index)

} return true;

}}

第三題:

20. 有效的括號

給定乙個只包括'('')''''['']'的字串,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

示例 1:

輸入: "()"

輸出: true

示例 2:

輸入: "(){}"

輸出: true

示例 3:

輸入: "(]"

輸出: false

示例 4:

輸入: "([)]"

輸出: false

示例 5:

輸入: ""

輸出: true

class solution ", "").replace("", "").replace("()","");

if(old == s) return false;

}return true;

}}

是的你沒有看錯,就是這麼雞賊,但是這個方法效率並不高,只能打敗1%的選手。。。

那麼正常的解法:

class solution 

else

char temp = stack.pop();

if(cur == ')' && temp != '(') return false;

if(cur == ']' && temp != '[') return false;

if(cur == '}' && temp != '

}if(stack.isempty()) return true;

else return false;

}}

目前本人技術有限,還在刷簡單題~大家有什麼想和我分享的吐槽的可以盡情的來噻!

基本演算法學習day1

反轉陣列 leecode242.有效的字母異位詞 方法 建立26位的int陣列,用來存放對應第幾個字母的個數 遍歷 s讓相應的值 遍歷 t讓相應的值 最後如果陣列中有乙個值不為0則返回false 給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anag...

路徑規劃演算法學習Day1

解決最短路徑問題的演算法有很多,dijkstra演算法是其中最為有效的一種。它是於1959年荷蘭計算機科學家edsger dijkstra提出的 能夠解決 單結點 所有結點 間的最短路徑問題。首先以某一結點 源結點 作為出發點,在與其相連且尚未被加入的結點裡,選擇加入離出發點距離最短的結點,並且通過...

排序演算法Day1

include mysort.h include include include include include include include using namespace std 插入排序 時間複雜度 平均哦o n 2 完全有序時o n 空間複雜度o 1 穩定 思想 把待排序列分為有序序列和無...