博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Median of Two Sorted Arrays
阅读量:5159 次
发布时间:2019-06-13

本文共 1344 字,大约阅读时间需要 4 分钟。

这个题真的很简单,但是在LeetCode中难度排最高级,开始写代码进度跑的时候以为是题理解错啦,它的输出信息是

input:

ouput:

expected:

我以为第二项是正确答案,可恶的英文,最后知道原因后,就能写正确代码,但是中间老是有点改动就想提交,不知道这习惯好不,下面贴上丑陋的代码,花时间再看看别人的优秀代码。

double findMedianSortedArrays(int A[], int m, int B[], int n){    int sum = m + n;    if (sum == 0) {        return 0;    } else if (sum == 1) {        return m > n ? A[m - 1] : B[n - 1];    } else if(m == 0) {        if (sum % 2 == 0) {            return (B[sum / 2 - 1] + B[sum / 2]) / 2.f;        } else {            return B[sum / 2];        }    } else if (n == 0) {        if (sum % 2 == 0) {            return (A[sum / 2 - 1] + A[sum / 2]) / 2.f;        } else {            return A[sum / 2];        }    }    int count = sum / 2;    int j = 0, k = 0;    int tmp1 = 0;    for (int i = 0; i < count; i++) {        if (j >= m || (k < n && A[j] > B[k])) {            if (sum % 2 ==0) {                tmp1 = B[k];            }            k++;        } else {            if (sum % 2 ==0) {                tmp1 = A[j];            }            j++;        }    }    float result = .0f;    if (j >= m) {        result = B[k];    } else if(k >= n) {        result = A[j];    } else {        result = A[j] < B[k] ? A[j] : B[k];    }    if (sum % 2 == 0) {        return (tmp1 + result) / 2.f;    } else {        return result;    }}

 

转载于:https://www.cnblogs.com/unreall/p/4430251.html

你可能感兴趣的文章
从.Net版本演变看String和StringBuilder性能之争
查看>>
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
【bzoj2788】Festival
查看>>
执行gem install dryrun错误
查看>>
HTML5简单入门系列(四)
查看>>
实现字符串反转
查看>>
转载:《TypeScript 中文入门教程》 5、命名空间和模块
查看>>
苹果开发中常用英语单词
查看>>
[USACO 1.4.3]等差数列
查看>>
Shader Overview
查看>>
Reveal 配置与使用
查看>>
Java中反射的学习与理解(一)
查看>>
C语言初学 俩数相除问题
查看>>
B/S和C/S架构的区别
查看>>
[Java] Java record
查看>>
jQuery - 控制元素显示、隐藏、切换、滑动的方法
查看>>
postgresql学习文档
查看>>
Struts2返回JSON数据的具体应用范例
查看>>
js深度克隆对象、数组
查看>>