刷題之路第四題 取兩個順序陣列的數值的中位數

2022-09-11 08:24:10 字數 1064 閱讀 3396

median of two sorted arrays

簡介:取兩個順序陣列的數值的中位數

問題詳解:

給定兩個排序的陣列nums1和nums2分別為m和n,我們需要的是兩個陣列中所組成乙個數列的中位數.

注意:1.需要判斷陣列npe

2.結果不是int

舉例1:

nums1 = [1, 3]

nums2 = [2]

中位數是 2.0

2:nums1 = [1, 2]

nums2 = [3, 4]

中位數是 (2 + 3)/2 = 2.5

j**a 實現方法一:

通過npe判斷後將兩個陣列插入到乙個集合裡,然後通過toarray()轉換為陣列,用arrays.sort()排序再求出中位數

了解中位數有什麼用,在統計中,中位數用於將一組分成兩個相等長度的子集,乙個子集總是大於另乙個子集

如果我們利用中位數來劃分兩個陣列

複雜度分析:

時間複雜度: o(log⁡(min(m,n)))

空間複雜度; o(1)

注:1.toaraay()

*toarray();

報錯:exception in thread 「main」 j**a.lang.classcastexception: j**a.lang.object; cannot be cast to j**a.lang.string;

*toarray(ta);轉換為指定型別

string array =new string[list.size()];

list.toarray(array);

陣列的定義不能用基本型別 只能用包裝型別

2.陣列的動態初始化 時new int [ ] 不是 new [ ] int

小白刷題之路,請多指教— — 要麼大器晚成,要麼石沉大海

LeetCode刷題 88 合併兩個有序陣列

給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。說明 初始化 nums1 和 nums2 的元素數量分別為 m 和 n。你可以假設 nums1 有足夠的空間 空間大小大於或等於 m n 來儲存 nums2 中的元素。雙指標法...

leetcode刷題 88 合併兩個有序陣列

給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中 使 nums1 成為乙個有序陣列。這種解法運用到了歸併排序的思想 使用雙指標同時遍歷兩個陣列,比較指標指向元素的大小,將小的元素放到正確的位置即可。class solution def merge self...

LeetCode刷題 尋找兩個有序陣列的中位數

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。nums1 1,3 nums2 2 則中位數是 2.0 nums1 1,2 nums2 3,4 ...