LeetCode每日一刷

2021-10-04 13:48:37 字數 1846 閱讀 5616

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 ...