給定乙個含有n個正整數的陣列和乙個正整數s ,找出該陣列中滿足其和≥ s的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。示例:
輸入:高階:s = 7, nums = [2,3,1,2,4,3]
輸出:2解釋:子陣列[4,3]
是該條件下的長度最小的連續子陣列。如果你已經完成了o(n) 時間複雜度的解法, 請嘗試 o(n log n) 時間複雜度的解法。
//時間複雜度:o(n)
//空間複雜度:o(1)
class solution
if(res == nums.size()+1)
return 0;
return res;
}};
給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1:
示例 2:輸入: "abcabcbb"
輸出: 3
解釋: 因為無重複字元的最長子串是 "abc",所以其長度為 3。
示例 3:輸入: "bbbbb"
輸出: 1
解釋: 因為無重複字元的最長子串是 "b",所以其長度為 1。
輸入: "pwwkew"
輸出: 3
解釋: 因為無重複字元的最長子串是 "wke"所以其長度為 3。請注意,你的答案必須是 子串 的長度,"pwke"是乙個子串行,不是子串。
class solution ; //設定乙個陣列,0為沒有重複,1為重複
int l = 0, r = -1; //滑動視窗為s[l...r]
int res = 0;
while( l
給定乙個字串s和乙個非空字串p,找到s中所有是p的字母異位詞的子串,返回這些子串的起始索引。
字串只包含小寫英文本母,並且字串s和p的長度都不超過 20100。
說明:
如 s = "cbaebabacd" p = "abc", 返回[0,6]
如 s = "abab" p = "ba", 返回[0,1,2]
class solution ; //判斷是否為空
vectorres, m(256, 0);
int left = 0, right = 0, count = p.size(), n = s.size();
for (char c : p) ++m[c]; //遍歷string p
while (right < n)
return res;
}};
給定乙個字串 s 和乙個字串 t,請在 s 中找出包含 t 所有字母的最小子串。示例:
說明:輸入: s = "adobecodebanc", t = "abc"
輸出: "banc"
class solution
if (++lettercnt[s[left]] > 0) --cnt;
++left;}}
return res;
}};
leetcode刷題之旅(day1)
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...
Leetcode刷題之旅(Day2)
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
LeetCode刷題之旅(Day4)
給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0 示例 2 nums1 1,2 ...