码迷,mamicode.com
首页 > 其他好文 > 详细

leetCode做题笔记二(4, 8)

时间:2015-01-03 13:26:05      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:java   算法   leetcode   

  1. LeetCode8, 手写atoi,一大堆判断。。。最好记录408ms,约为5%

  经验4如何经济的判断溢出

  经验5:让不合法的输入第一时间return0;

  经验6:对于javascript里那一堆isxxx的函数,对应在JavaCharacter类下

技术分享




2. LeetCode4 求两个升序数组的中位数

网上大部分解法都是错误的,和我犯了一样的错误。三个小时啊啊啊啊啊白费了

 

经验7:求平均数应该除以2.0

 

错误算法:

分别求出序列A B 的中位数,设为a b,求序列A B 的中位数过程

1)若a=b,则a b 即为所求中位数,算法结束。

2)若a<b,则舍弃序列A 中较小的一半,同时舍弃序列B 中较大的一半,要求舍弃的长度相等;

3)若a>b,则舍弃序列A 中较大的一半,同时舍弃序列B 中较小的一半,要求舍弃的长度相等;

在保留的两个升序序列中,重复过程1)、2)、3),直到两个序列中只含一个元素时为止,较小者即为所求的中位数。

原因:应该在任何一个数列剩两个元素的时候就停止程序,因为有可能中位数恰好就是这两个元素的平均数,不能舍去。但这时要分析的情况太多,不优。


正确算法

技术分享


这个算法的主要思想就在于找到一个数,这个数前面有(n+m)/2个数,不断递归求解即可


本文出自 “码农的自我修养” 博客,请务必保留此出处http://08310302.blog.51cto.com/7006444/1598571

leetCode做题笔记二(4, 8)

标签:java   算法   leetcode   

原文地址:http://08310302.blog.51cto.com/7006444/1598571

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!