leetCode第四題 js實現

2021-10-05 23:29:16 字數 1026 閱讀 1175

(這題雖然是困難的題,但是相對來說簡單一點)

給定兩個大小為 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

思路建立乙個新的空陣列(這個陣列中存放的是nums和nums2的所有數,並且是公升序排列的 ), 建立兩個指標分別指向兩個陣列的開始,

let i = j = 0;

let set = ;

判斷nums[i]和nums[j]的大小

nums1[i] > nums2[j]  則set.push(nums2[j])       ;  j++;

否則set.push(nums1[i])       ;  i++;

while (i < nums1.length && j < nums2.length)  else 

}

nums1的長度和nums2的長度不一定相同,所以最後可能是有乙個的沒有遍歷完,要把剩餘的加入到set中

while (i < nums1.length) 

while (j < nums2.length)

完整**

var findmediansortedarrays = function(nums1, nums2)  else 

}while (i < nums1.length)

while (j < nums2.length)

if(set.length % 2 == 1) else

};

JS實現 LeetCode 陣列類演算法(四)

更多演算法實現見 分析 將陣列公升序排序後,遍歷陣列,在遍歷的過程中需排除k diff對 i,j 中i重複以及k diff對 i,j 中j重複的情況,之後再判斷 i,j 中 i 與 j 的差值是否等於 k。如下 var findpairs function nums,k 公升序排序 for let ...

第四題 替換空格

可以使用這樣的方法 先遍歷一遍字串,求出字串中空格的個數,由此,可以計算出替換之後的字串的總長度,然後標記出字串的末尾p1和替換之後的末尾p2。再逐步往前移動p1,p2,同時將p1資料複製到p2的位置中,如果p1指向了乙個空格,則將p1往前移動一格,p2的位置依次插入 0 2 並往前移動。當空格替換...

2018暑假第四題

題目 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。python 示例 1 輸入 121輸出 true示例 2 輸入 121輸出 false解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10輸出 false解釋 ...