网站建设费一般摊销几年怎样用手机做推广免费网站
网站建设费一般摊销几年,怎样用手机做推广免费网站,中文企业展示网站模板,贵州有网站的企业LeetCode - The Worlds Leading Online Programming Learning Platform
题目大意
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。
请你找出这两个有序数组的中位数#xff0c;并且要求算法的时间复杂度为 O(log(m n))。
你可以假设 nums1 和 nums2 不会同时为空。 …LeetCode - The Worlds Leading Online Programming Learning Platform
题目大意
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。
请你找出这两个有序数组的中位数并且要求算法的时间复杂度为 O(log(m n))。
你可以假设 nums1 和 nums2 不会同时为空。
解题思路
一、最容易想到的办法是把两个数组合并然后取出中位数。但是合并有序数组的操作是 O(mn) 的不符合题意。看到题目给的 log 的时间复杂度很容易联想到二分搜索。
class Solution {public double findMedianSortedArrays(int[] nums1, int[] nums2) {int size nums1.length nums2.length;int index1 0;int index2 0;int end size/2;int begin end;if (size % 2 0) {begin begin-1;}int [] result new int[end];int index 0;while (index1 index2 size index end) {if (index1 nums1.length - 1) {result[index] nums2[index2];continue;}if (index2 nums2.length - 1) {result[index] nums1[index1];continue;}if (nums1[index1] nums2[index2]) {result[index] nums1[index1];continue;}result[index] nums2[index2];}return (result[begin] result[end])/2d;}
}
二、去中位进行两个数组移动
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89462.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!