尋找陣列的中心索引
|
給你一個整數陣列 nums ,請計算陣列的 中心下標 , 陣列 中心下標 是陣列的一個下標,其左側所有元素相加的和等于右側所有元素相加的和, 如果中心下標位于陣列最左端,那么左側數之和視為 0 ,因為在下標的左側不存在元素,這一點對于中心下標位于陣列最右端同樣適用, 如果陣列有多個中心下標,應該回傳 最靠近左邊 的那一個,如果陣列不存在中心下標,回傳 -1 , 示例 1: 輸入:nums = [1, 7, 3, 6, 5, 6] 輸入:nums = [1, 2, 3] 輸入:nums = [2, 1, -1] 提示: 1 <= nums.length <= 104 -1000 <= nums[i] <= 1000 |
搜索插入位置
|
給定一個排序陣列和一個目標值,在陣列中找到目標值,并回傳其索引,如果目標值不存在于陣列中,回傳它將會被按順序插入的位置, 請必須使用時間復雜度為 O(log n) 的演算法,
示例 1: 輸入: nums = [1,3,5,6], target = 5 輸入: nums = [1,3,5,6], target = 2 輸入: nums = [1,3,5,6], target = 7 輸入: nums = [1,3,5,6], target = 0 輸入: nums = [1], target = 0 提示: 1 <= nums.length <= 104 |
合并區間
|
以陣列 intervals 表示若干個區間的集合,其中單個區間為 intervals[i] = [starti, endi] ,請你合并所有重疊的區間,并回傳一個不重疊的區間陣列,該陣列需恰好覆寫輸入中的所有區間,
示例 1: 輸入:intervals = [[1,3],[2,6],[8,10],[15,18]] 輸入:intervals = [[1,4],[4,5]] 提示: 1 <= intervals.length <= 104 |
旋轉矩陣
|
給你一幅由 N × N 矩陣表示的影像,其中每個像素的大小為 4 位元組,請你設計一種演算法,將影像旋轉 90 度, 不占用額外記憶體空間能否做到?
示例 1: 給定 matrix = 原地旋轉輸入矩陣,使其變為: 給定 matrix = 原地旋轉輸入矩陣,使其變為: |
零矩陣
|
撰寫一種演算法,若M × N矩陣中某個元素為0,則將其所在的行與列清零,
示例 1: 輸入: 輸入: |
對角線遍歷
|
給你一個大小為 m x n 的矩陣 mat ,請以對角線遍歷的順序,用一個陣列回傳這個矩陣中的所有元素,
示例 1:
輸入:mat = [[1,2,3],[4,5,6],[7,8,9]] 輸入:mat = [[1,2],[3,4]] 提示: m == mat.length |
最長公共前綴
|
撰寫一個函式來查找字串陣列中的最長公共前綴, 如果不存在公共前綴,回傳空字串 "",
示例 1: 輸入:strs = ["flower","flow","flight"] 輸入:strs = ["dog","racecar","car"] 提示: 1 <= strs.length <= 200 |
最長回文子串
|
給你一個字串 s,找到 s 中最長的回文子串,
示例 1: 輸入:s = "babad" 輸入:s = "cbbd" 輸入:s = "a" 輸入:s = "ac" 提示: 1 <= s.length <= 1000 |
翻轉字串里的單詞
|
給你一個字串 s ,逐個翻轉字串中的所有 單詞 , 單詞 是由非空格字符組成的字串,s 中使用至少一個空格將字串中的 單詞 分隔開, 請你回傳一個翻轉 s 中單詞順序并用單個空格相連的字串, 說明: 輸入字串 s 可以在前面、后面或者單詞間包含多余的空格, 示例 1: 輸入:s = "the sky is blue" 輸入:s = " hello world " 輸入:s = "a good example" 輸入:s = " Bob Loves Alice " 輸入:s = "Alice does not even like bob" 提示: 1 <= s.length <= 104 進階: 請嘗試使用 O(1) 額外空間復雜度的原地解法, |
實作strStr()
|
實作 strStr() 函式, 給你兩個字串 haystack 和 needle ,請你在 haystack 字串中找出 needle 字串出現的第一個位置(下標從 0 開始),如果不存在,則回傳 -1 ,
說明: 當 needle 是空字串時,我們應當回傳什么值呢?這是一個在面試中很好的問題, 對于本題而言,當 needle 是空字串時我們應當回傳 0 ,這與 C 語言的 strstr() 以及 Java 的 indexOf() 定義相符,
示例 1: 輸入:haystack = "hello", needle = "ll" 輸入:haystack = "aaaaa", needle = "bba" 輸入:haystack = "", needle = "" 提示: 0 <= haystack.length, needle.length <= 5 * 104 |
反轉字串
|
撰寫一個函式,其作用是將輸入的字串反轉過來,輸入字串以字符陣列 s 的形式給出, 不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列、使用 O(1) 的額外空間解決這一問題,
示例 1: 輸入:s = ["h","e","l","l","o"] 輸入:s = ["H","a","n","n","a","h"] |
陣列拆分I
|
給定長度為 2n 的整數陣列 nums ,你的任務是將這些數分成 n 對, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得從 1 到 n 的 min(ai, bi) 總和最大, 回傳該 最大總和 ,
示例 1: 輸入:nums = [1,4,3,2] 輸入:nums = [6,2,6,5,1,2] |
兩數之和II-輸入有序陣列
|
給定一個已按照 非遞減順序排列 的整數陣列 numbers ,請你從陣列中找出兩個數滿足相加之和等于目標數 target , 函式應該以長度為 2 的整數陣列的形式回傳這兩個數的下標值,numbers 的下標 從 1 開始計數 ,所以答案陣列應當滿足 1 <= answer[0] < answer[1] <= numbers.length , 你可以假設每個輸入 只對應唯一的答案 ,而且你 不可以 重復使用相同的元素, 輸入:numbers = [2,7,11,15], target = 9 輸入:numbers = [2,3,4], target = 6 輸入:numbers = [-1,0], target = -1 提示: 2 <= numbers.length <= 3 * 104 |
移出元素
|
給你一個陣列 nums 和一個值 val,你需要 原地 移除所有數值等于 val 的元素,并回傳移除后陣列的新長度, 不要使用額外的陣列空間,你必須僅使用 O(1) 額外空間并 原地 修改輸入陣列, 元素的順序可以改變,你不需要考慮陣列中超出新長度后面的元素,
說明: 為什么回傳數值是整數,但輸出的答案是陣列呢? 請注意,輸入陣列是以「參考」方式傳遞的,這意味著在函式里修改輸入陣列對于呼叫者是可見的, 你可以想象內部操作如下: // nums 是以“參考”方式傳遞的,也就是說,不對實參作任何拷貝 // 在函式里修改輸入陣列對于呼叫者是可見的, 示例 1: 輸入:nums = [3,2,2,3], val = 3 輸入:nums = [0,1,2,2,3,0,4,2], val = 2 |
最大連續1的個數
|
給定一個二進制陣列, 計算其中最大連續 1 的個數,
示例: 輸入:[1,1,0,1,1,1] 提示: 輸入的陣列只包含 0 和 1 , |
長度最小的子陣列
|
給定一個含有 n 個正整數的陣列和一個正整數 target , 找出該陣列中滿足其和 ≥ target 的長度最小的 連續子陣列 [numsl, numsl+1, ..., numsr-1, numsr] ,并回傳其長度,如果不存在符合條件的子陣列,回傳 0 ,
示例 1: 輸入:target = 7, nums = [2,3,1,2,4,3] 輸入:target = 4, nums = [1,4,4] 輸入:target = 11, nums = [1,1,1,1,1,1,1,1] 提示: 1 <= target <= 109 |
楊輝三角
|
給定一個非負整數 numRows,生成「楊輝三角」的前 numRows 行, 在「楊輝三角」中,每個數是它左上方和右上方的數的和, 示例 1: 輸入: numRows = 5 輸入: numRows = 1 提示:
|
楊輝三角II
|
在「楊輝三角」中,每個數是它左上方和右上方的數的和,
示例 1: 輸入: rowIndex = 3 輸入: rowIndex = 0 輸入: rowIndex = 1 提示: 0 <= rowIndex <= 33 進階: 你可以優化你的演算法到 O(rowIndex) 空間復雜度嗎? |
反轉字串中的單詞III
|
給定一個字串,你需要反轉字串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序,
示例: 輸入:"Let's take LeetCode contest" 提示: 在字串中,每個單詞由單個空格分隔,并且字串中不會有任何額外的空格, |
尋找旋轉排序陣列中的最小值
|
已知一個長度為 n 的陣列,預先按照升序排列,經由 1 到 n 次 旋轉 后,得到輸入陣列,例如,原陣列 nums = [0,1,2,4,5,6,7] 在變化后可能得到: 給你一個元素值 互不相同 的陣列 nums ,它原來是一個升序排列的陣列,并按上述情形進行了多次旋轉,請你找出并回傳陣列中的 最小元素 ,
示例 1: 輸入:nums = [3,4,5,1,2] 輸入:nums = [4,5,6,7,0,1,2] 輸入:nums = [11,13,15,17] 提示: n == nums.length |
洗掉排序陣列中的重復項
|
給你一個有序陣列 nums ,請你 原地 洗掉重復出現的元素,使每個元素 只出現一次 ,回傳洗掉后陣列的新長度, 不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 并在使用 O(1) 額外空間的條件下完成,
說明: 為什么回傳數值是整數,但輸出的答案是陣列呢? 請注意,輸入陣列是以「參考」方式傳遞的,這意味著在函式里修改輸入陣列對于呼叫者是可見的, 你可以想象內部操作如下: // nums 是以“參考”方式傳遞的,也就是說,不對實參做任何拷貝 // 在函式里修改輸入陣列對于呼叫者是可見的, 輸入:nums = [1,1,2] 輸入:nums = [0,0,1,1,1,2,2,3,3,4] 提示: 0 <= nums.length <= 3 * 104 |
移動零
|
給定一個陣列 nums,撰寫一個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序, 示例: 輸入: [0,1,0,3,12] 必須在原陣列上操作,不能拷貝額外的陣列, |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/398409.html
標籤:其他

