- LeetCode8, 手写atoi,一大堆判断。。。最好记录408ms,约为5%。
经验4:如何经济的判断溢出
经验5:让不合法的输入第一时间return0;
经验6:对于javascript里那一堆isxxx的函数,对应在Java的Character类下
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个数,不断递归求解即可
时间: 2024-11-05 22:45:23