LeetCode刷題筆記

2021-09-24 03:55:34 字數 2564 閱讀 3521

實現strstr()

給定乙個 haystack 字串和乙個 needle 字串,在 haystack 字串中找出 needle 字串出現的第乙個位置 (從0開始)。如果不存在,則返回 -1。

示例 1:

輸入: haystack = 「hello」, needle = 「ll」

輸出: 2

示例 2:

輸入: haystack = 「aaaaa」, needle = 「bba」

輸出: -1

class solution 

if(needle.charat(i)==needle.charat(k+1))

next[i] = k+1;

else

next[i] = -1;

}int n = haystack.length(),m = needle.length();

int s = 0,p = 0;

while(s0)else

s++;

}if(p==m)

return s-m;

return -1;

}}

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

有效字串需滿足:

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

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

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

示例 1:

輸入: 「()」

輸出: true

示例 2:

輸入: 「(){}」

輸出: true

class solution 

return max;

}}

二叉樹的層次遍歷
給定乙個二叉樹,返回它的中序遍歷。

每一層的節點的值包裝成乙個list,然後返回乙個總的list。

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

list> lists = new arraylist<>();

listlist = new arraylist<>();

queuequeue = new linkedlist<>();

queue.add(root);

while (!queue.isempty())

lists.add(list);

system.out.println(lists.get(0));

list.clear();

}return lists;

}}

最小路徑和
給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。

說明:每次只能向下或者向右移動一步。

示例:輸入:

[[1,3,1],

[1,5,1],

[4,2,1]

]輸出: 7

解釋: 因為路徑 1→3→1→1→1 的總和最小。

class solution 

for(int i = 1; i < col; i++)

if(col == 1 || row == 1)

for(int i = 1; i < row; i++)

}return grade[row - 1][col - 1];

}}

無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。

示例 1:

輸入: 「abcabcbb」

輸出: 3

解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。

示例 2:

輸入: 「bbbbb」

輸出: 1

解釋: 因為無重複字元的最長子串是 「b」,所以其長度為 1。

示例 3:

輸入: 「pwwkew」

輸出: 3

解釋: 因為無重複字元的最長子串是 「wke」,所以其長度為 3。

請注意,你的答案必須是 子串 的長度,「pwke」 是乙個子串行,不是子串。

這留個題目中最有價值的一道題目了吧,利用滑動視窗機制,另外還可以用hashmap優化

class solution 

ans = math.max(ans,j-i+1);

map.put(str.charat(j),j+1);

}return ans;

}}

Leetcode刷題筆記

1.兩數之和給定乙個整數陣列nums 和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。ps 你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路 用target減去nums中的每乙個數,並設立乙個字典來記錄對應的下標 class...

LeetCode刷題筆記

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...

leetcode刷題筆記

兩個陣列的交集 兩個陣列的交集 ii class solution return ans 排序加雙指標 按奇偶排序陣列 ii class solution int temp a i a i a j a j temp return a 對偶數索引進行排序,當發現偶數索引出現奇數時,在奇數索引上尋找第乙...