7. 整數反轉
9. 回文數
13. 羅馬數字轉整數
14. 最長公共字首
(2)思路與解法
20. 有效的括號
工作一年,啥都忘光了,重新搞起來!!!
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。
1.暴力求解:遍歷整個陣列
class
solution;}
}}return
newint
;}}
時間複雜度:o(n^2)
空間複雜度:o(1)
2. 雜湊表:用空間複雜度換時間,考慮每個元素與其索引相互對應–雜湊表
class
solution
for(
int i =
0; i < length; i++);
}}return
newint
;}}
時間複雜度:o(n)
空間複雜度:o(n)
給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
這位大佬判斷溢位的方式牛啊!
可以參考這位大佬的思路
class
solution
return
(int
)res == res ?
(int
)res :0;
}}
整數溢位
判斷乙個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
思路與上一題一致。
class
solution
return temp == res;
}}
羅馬數字包含以下七種字元: i, v, x, l,c,d 和 m。
字元 數值
i 1v 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。這個特殊的規則只適用於以下六種情況:
i 可以放在 v (5) 和 x (10) 的左邊,來表示 4 和 9。
x 可以放在 l (50) 和 c (100) 的左邊,來表示 40 和 90。
c 可以放在 d (500) 和 m (1000) 的左邊,來表示 400 和 900。
給定乙個羅馬數字,將其轉換成整數。輸入確保在 1 到 3999 的範圍內。
這道題的思路很簡單,從右往左判斷,如果左邊的比右邊的小,左邊這個數就是減法,否則是加法。
class
solution
res +=
getvalue
(s.charat
(length-1)
);for(
int j = length -
2; j >=
0; j--
)else
}return res;
}public
intgetvalue
(char c)
return res;
}}
編寫乙個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 「」。
考慮先將結果字串設定為第乙個字串,結果字串一定是這個字串的子集。從第二字串開始比較,擷取相同的部分作為當前結果字串。時間負責度為o(mn)
class
solution
string res = strs[0]
;for
(int i =
1; i < strs.length; i++)}
res = res.
substring(0
, j);if
("".equals
(res))}
return res;
}}
給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
這個題目很明顯是棧的典型應用場景。
要注意判斷一下是否為空串。
class
solution
if(len ==0)
stack
stack =
newstack
(); stack.
push
(s.charat(0
));for
(int i =
1; i < len; i++
)else}if
(stack.
size()
==0)else
}public
static
boolean
comparison
(character a, character b)')
return
false;}
}
leetcode刷題筆記(簡單篇) 1 7
二 no7.整數反轉 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums ...
leetcode刷題筆記(簡單篇) 88 100
no100.相同的樹 給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。說明 初始化 nums1 和 nums2 的元素數量分別為 m 和 n。你可以假設 nums1 有足夠的空間 空間大小大於或等於 m n 來儲存 nums...
演算法 簡單篇
演算法分析 設n 尾部0的數量的函式為f n 易得尾部0的數量由n!中2和5的因數數量決定,因為2的因數很多很多,故只需要考慮有幾個5 f 1 0 f 2 0 f 3 0 f 4 0 f 5 1 f n 5k 5 k 1 5 k 2 5 1 a 其中k,a是正整數,且a不能被5整除 5 k a k ...