当前位置: 首页 > wzjs >正文

网站建设 文章线上推广是什么意思

网站建设 文章,线上推广是什么意思,黄骅港疫情,商城型网站怎么做优化给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (mn)) 。示例 1:输入:nums1 [1,3], nums2 [2] 输出:2.00000 解释&#x…

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

算法的时间复杂度应该为 O(log (m+n)) 。

示例 1:

输入:nums1 = [1,3], nums2 = [2]
输出:2.00000
解释:合并数组 = [1,2,3] ,中位数 2

示例 2:

输入:nums1 = [1,2], nums2 = [3,4]
输出:2.50000
解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5

O(m+n)复杂度的方法

class Solution {
public:double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {int l1 = 0, l2 = 0, mid1, mid2;int r1 = nums1.size() - 1, r2 = nums2.size() - 1;int total = nums1.size() + nums2.size();bool is_odd = total % 2;int mid = total / 2;double result = 0.0;// 如果 nums1 为空if (nums1.empty()) {if (nums2.empty()) return 0.0; // 两个都空if (is_odd) return nums2[mid];return (nums2[mid - 1] + nums2[mid]) / 2.0;}// 如果 nums2 为空if (nums2.empty()) {if (is_odd) return nums1[mid];return (nums1[mid - 1] + nums1[mid]) / 2.0;}// 合并两个数组(直接模拟合并直到中位数)int i = 0, j = 0, count = 0;int prev = 0, curr = 0;while (count <= mid) {prev = curr;if (i < nums1.size() && (j >= nums2.size() || nums1[i] <= nums2[j])) {curr = nums1[i++];} else {curr = nums2[j++];}count++;}if (is_odd) return curr;return (prev + curr) / 2.0;}
};

O(LogMin(M,N))的方法

class Solution {
public:int getKthElement(const vector<int>& nums1, const vector<int>& nums2, int k) {int index1 = 0, index2 = 0;int n1 = nums1.size(), n2 = nums2.size();while (true) {// 特殊情况:nums1已经用完了if (index1 == n1) return nums2[index2 + k - 1];if (index2 == n2) return nums1[index1 + k - 1];// 如果只要第1小的数,直接比较两边头部if (k == 1) return min(nums1[index1], nums2[index2]);// 正常处理int half = k / 2;// 计算每个数组跳多少步int newIndex1 = min(index1 + half, n1) - 1;int newIndex2 = min(index2 + half, n2) - 1;int pivot1 = nums1[newIndex1];int pivot2 = nums2[newIndex2];// 谁的 pivot 小,谁的前面都不可能是第k小,全部丢掉if (pivot1 <= pivot2) {k -= (newIndex1 - index1 + 1);index1 = newIndex1 + 1;} else {k -= (newIndex2 - index2 + 1);index2 = newIndex2 + 1;}}}double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {int total = nums1.size() + nums2.size();// 奇数情况,找第 (n/2 + 1) 小if (total % 2 == 1) {return getKthElement(nums1, nums2, total / 2 + 1);} // 偶数情况,取中间两个平均else {return (getKthElement(nums1, nums2, total / 2) +getKthElement(nums1, nums2, total / 2 + 1)) / 2.0;}}
};

http://www.dtcms.com/wzjs/502041.html

相关文章:

  • 成都建网站网络销售怎么找客源
  • 企业网站排名怎么做百度推广新手入门
  • 做网站 淘宝磁力蜘蛛搜索引擎
  • 国内网站都要备案吗成都网站建设制作公司
  • 怎么做网站文字优化全球搜钻
  • 创网站永久免费建站爱站网关键词挖掘工具
  • 自定义wordpress评论列表班级优化大师免费下载
  • 杭州拱墅网站建设帮我搜一下长沙做网络销售
  • 香港免费永久网站小红书seo关键词优化多少钱
  • discuz做服务网站网站百度seo关键词优化
  • 域名先解析后做网站互联网项目
  • 做网站有什么市场风险seo软件系统
  • 怎样做公司的网站建设输入关键词就能写文章的软件
  • 宁波建设局网站首页发布新闻
  • 杭州九鸿科技网站开发营销方案范文
  • 嘉兴做网站优化哪家好在线观看的seo综合查询
  • 潍坊网站建设网超网站关键词优化代理
  • 微信端网站开发流程南宁优化网站收费
  • 企业名东莞整站优化推广公司找火速
  • 做网站.cn好还是.com好谷歌应用商店下载
  • 济南建公司网站北京朝阳区优化
  • 中英文网站建设需要懂英语吗搜狗竞价推广效果怎么样
  • wordpress qq 微信登录重庆电子商务网站seo
  • 网站首页布局自适应广东网站关键词排名
  • 手机自助网站建设网络推广app是干什么的
  • 一起做业英语网站关键词规划师工具
  • 什么值得买 网站开发网站推广搜索
  • 电子商务网站建设与运营百度图片搜索引擎入口
  • 用flash做的网站欣赏全网热搜榜第一名
  • 长沙房产交易中心官网青岛seo网络推广