004 尋找兩個有序陣列的中位數
題目:給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
示例 1:
輸入: 「abcabcbb」
輸出: 3
解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。
示例 2:
輸入: 「bbbbb」
輸出: 1
解釋: 因為無重複字元的最長子串是 「b」,所以其長度為 1。
示例 3:
輸入: 「pwwkew」
輸出: 3
解釋: 因為無重複字元的最長子串是 「wke」,所以其長度為 3。
請注意,你的答案必須是 子串 的長度,「pwke」 是乙個子串行,不是子串。
class
solution
int max=0;
for(
int j=
0;j)return max;
}/**
* 找的到返回出現位置,找不到返回最大長度
* @param start
* @param index
* @param s
* @return
*/public
static
intfind
(int start,
char index,
char
s)}return s.length;
}public
static
intmaxlen
(int index,
int[
] len)
}return len[index]
-index;
}}
題目:給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。
請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o(log(m + n))。
你可以假設 nums1 和 nums2 不會同時為空。
示例 1:
nums1 = [1, 3]
nums2 = [2]
則中位數是 2.0
示例 2:
nums1 = [1, 2]
nums2 = [3, 4]
則中位數是 (2 + 3)/2 = 2.5
看我寫了折磨多,實際上考慮了想把時間浮渣度減下來,太南了
class
solution
else
}else
if(nums2==null||nums2.length==0)
else
}else
else
if(len1==len2)
else
}else
if(n2w<=n1t)
else
if(len1==len2)
else
}else}}
public
double
sort
(int a,
int b,
int len1,
int len2)
if(j==len2)
if(a[i]
)else
if(a[i]
>b[j]
)else
}return
(nums[
(len1+len2)/2
]+nums[
(len1+len2)/2
-((len1+len2)&1
^1)]
)/2.0;
}}
leetcode每日一刷
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。class solution object deftwosum self,nums,target ...
(LeetCode每日一刷43)896 單調數列
題目描述 如果陣列是單調遞增或單調遞減的,那麼它是單調的。如果對於所有i j,a i a j 那麼陣列a是單調遞增的。如果對於所有i j,a i a j 那麼陣列a是單調遞減的。當給定的陣列a是單調陣列時返回true,否則返回false。示例 示例 1 輸入 1,2,2,3 輸出 true示例 2 ...
(LeetCode每日一刷61)18 四數之和
給定乙個包含 n 個整數的陣列nums和乙個目標值target,判斷nums中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與target相等?找出所有滿足條件且不重複的四元組。注意 答案中不可以包含重複的四元組。示例 給定陣列 nums 1,0,1,0,2,2 和 target ...