zoukankan      html  css  js  c++  java
  • leetcode刷题四<寻找两个有序数组的中位数>

    给定两个大小为 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

    思路简单直接撸代码吧

    double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size) {
        
        int numsSize=nums1Size+nums2Size;
        int *nums=malloc(numsSize*sizeof(int));
        int *numsTemp=nums;
        int *numsEnd=nums+numsSize;
        int *nums1End=nums1+nums1Size;
        int *nums2End=nums2+nums2Size;
        double dest=0.0;
        while(numsTemp<numsEnd)
        {
            if(nums1<nums1End&&nums2<nums2End)
            {
                if(*nums1<*nums2)
                { *numsTemp++=*nums1++;}
                else
                {*numsTemp++=*nums2++;}
            }
            else
            {if(nums1<nums1End)
            {*numsTemp++=*nums1++;}
             else if(nums2<nums2End)
             {*numsTemp++=*nums2++;}
             }   
            
        }
        if(numsSize%2==0)
        { dest=(double)(nums[numsSize/2-1]+nums[numsSize/2])*1.0/2;}
        else
        {dest=(double)nums[(numsSize-1)/2];}
        return dest;
    }
  • 相关阅读:
    40 修改了机器名,portal重装后,还需要做什么?
    39 路径分析小练习
    38 空间查询小练习
    面向对象一些概念简述
    Js函数基本介绍
    JS中的变量和数据类型
    js基础语法
    Css样式优先级
    对响应式布局的理解和认知
    关于Flex布局
  • 原文地址:https://www.cnblogs.com/kk328/p/10459306.html
Copyright © 2011-2022 走看看