Java算法練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(2)
題目描述
尋找兩個(gè)正序數(shù)組的中位數(shù)
難度:困難
給定兩個(gè)大小分別為 m 和 n 的正序(從小到大)數(shù)組 nums1 和 nums2。請(qǐng)你找出并返回這兩個(gè)正序數(shù)組的 中位數(shù) 。
示例 1:
輸入:nums1 = [1,3], nums2 = [2]
輸出:2.00000
解釋:合并數(shù)組 = [1,2,3] ,中位數(shù) 2
示例 2:
輸入:nums1 = [1,2], nums2 = [3,4]
輸出:2.50000
解釋:合并數(shù)組 = [1,2,3,4] ,中位數(shù) (2 + 3) / 2 = 2.5
示例 3:
輸入:nums1 = [0,0], nums2 = [0,0]
輸出:0.00000
示例 4:
輸入:nums1 = [], nums2 = [1]
輸出:1.00000
示例 5:
輸入:nums1 = [2], nums2 = []
輸出:2.00000
提示:
nums1.length == m
nums2.length == n
0 <= m <= 1000
0 <= n <= 1000
1 <= m + n <= 2000
-106 <= nums1[i], nums2[i] <= 106
解題思路
題目大意: 就是求中位數(shù),如果數(shù)組有奇數(shù)個(gè)那就是求中間那個(gè)數(shù)即可,如果公有偶數(shù)個(gè),那就是中間兩個(gè)數(shù)的平均值。
解題思路:
有時(shí)候簡(jiǎn)單的思路往往可以解決問(wèn)題,我們只需要在new一個(gè)長(zhǎng)度為兩個(gè)數(shù)組長(zhǎng)度之和的空數(shù)組,然后把兩個(gè)數(shù)組都放進(jìn)去,然后sort一下,嗯沒(méi)錯(cuò)直接sort就行,然后排好序后,就直接求出中間下標(biāo),判斷下數(shù)組長(zhǎng)度是不是偶數(shù)個(gè),在分別處理即可
代碼
/** * Keafmd * * @ClassName: FindTheMedianOfTwoPositivelyOrderedArrays * @Description: 尋找兩個(gè)正序數(shù)組的中位數(shù) * @author: 牛哄哄的柯南 * @date: 2021-07-22 18:22 */ class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int l1 = nums1.length; int l2 = nums2.length; int[] num = new int[l1+l2]; int i=0,j=0; int k=0; double res =0; while(i<l1){ num[k++] = nums1[i++]; } while(j<l2){ num[k++] = nums2[j++]; } Arrays.sort(num); int sum_len = l1+l2; int mid = sum_len/2; if(sum_len%2==0){ res = (num[mid]+num[mid-1])/2.0; }else{ res = num[mid]; } return res; } }
總結(jié)
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
SpringBoot項(xiàng)目中使用Groovy腳本的示例代碼
本文主要介紹了SpringBoot項(xiàng)目中使用Groovy腳本的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Java設(shè)計(jì)模式之原型模式詳細(xì)解讀
這篇文章主要介紹了Java設(shè)計(jì)模式之原型模式詳細(xì)解讀,原型模式屬于創(chuàng)建型設(shè)計(jì)模式,用于創(chuàng)建重復(fù)的對(duì)象,且同時(shí)又保證了性能,該設(shè)計(jì)模式的好處是將對(duì)象的創(chuàng)建與調(diào)用方分離,需要的朋友可以參考下2023-12-12java實(shí)現(xiàn)合并兩個(gè)已經(jīng)排序的列表實(shí)例代碼
這篇文章主要介紹了java實(shí)現(xiàn)合并兩個(gè)已經(jīng)排序的列表實(shí)例代碼,有需要的朋友可以參考一下2013-12-12詳解Spring MVC的異步模式(高性能的關(guān)鍵)
本篇文章主要介紹了詳解Spring MVC的異步模式(高性能的關(guān)鍵),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02Java實(shí)戰(zhàn)之實(shí)現(xiàn)物流配送系統(tǒng)示例詳解
這篇文章主要介紹了一個(gè)java實(shí)戰(zhàn)項(xiàng)目:通過(guò)java、SSM、JSP、mysql和redis實(shí)現(xiàn)一個(gè)物流配送系統(tǒng)。文中的示例代碼非常詳細(xì),需要的朋友可以參考一下2021-12-12Mybatis的collection三層嵌套查詢方式(驗(yàn)證通過(guò))
這篇文章主要介紹了Mybatis的collection三層嵌套查詢方式(驗(yàn)證通過(guò)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Java如何跳出當(dāng)前多重循環(huán)你知道嗎
這篇文章主要為大家介紹了Java跳出當(dāng)前多重循環(huán),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01Java 數(shù)據(jù)庫(kù)連接池詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了Java 數(shù)據(jù)庫(kù)連接池詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-12-12