掌握正确的学习方法 | 【对不起,我要开始装逼了】

通过学习别人的代码,获取新的知识,进而提高自己的技术水平。

起因

昨天晚上在pythontip刷题的时候,刷到如下题目。

给你一个整数列表L, 输出L的中位数(若结果为小数,则保留一位小数)。
例如: L=[0,1,2,3,4]
则输出:2

对于大多数人来说没啥难度,但是这里我要说的并不只是如何解答这道题,更多的是传达一种思想。

解题思路

首先明确中位数的概念,以及如何通过程序的方式获取中位数,

概念:

中位数(Medians)统计学名词,是指将统计总体当中的各个变量值按大小顺序排列起来,形成一个数列,处于变量数列中间位置的变量值就称为中位数,用Me表示。当变量值的项数N为奇数时,处于中间位置的变量值即为中位数;当N为偶数时,中位数则为处于中间位置的2个变量值的平均数。

分析重点:

首先有序,从小大到的顺序,也就是说第一步要排序,python中我们可以使用sorted即可。

确定元素的个数是奇数还是偶数:

奇数,取中间元素即为中位数,例如[1,2,3,4,5]5个元素,个数为奇数 也就是取中间数字,即3

偶数,取中间2个元素并取平均即为中位数,例如[1,2,3,4,5,6] 6个元素,个数为偶数 也就是取中间2个数字并取其平均数,即(3+4)/3=3.5

我的代码

L=[1,2,3,4,5,6]L.sort()if len(L)%2==0:    print (L[len(L)/2-1]+L[len(L)/2])/2.00else:    print L[(len(L)-1)/2]

觉得很简单就是应用数学原理搞定,直到我看到下面解法:

# 中位数
# L = [0, 1, 2, 3, 4]  # 2
L = [0, 1, 3, 4, 5,7]
L.sort()
l_len = len(L)
n = (l_len - 1) // 2 #向下取整

if l_len & 0x1:
    print(L[n])
else:
    print('%.1f' %((L[n] + L[n+1]) / 2.0))

第一次看这代码一脸懵逼,首先//这个符号,还真就没怎么用过,后来查资料发现意思是向下取整,这个大部分人应该知道,然后看到奇怪的&0x1这是啥玩意呢,经过询问度娘,我找到了如下解释:

C语言中&表示按位与,0x开头的表示的是十六进制数,k&0x1表示k与0x1按位与,
其效果为取k的二进制中最右边的数字,该式也可以用做判断k的奇偶性, 如果k为奇数,其计算结果为1,否则为0。

这个解释已经说的很详细,这个操作就是为了计算奇偶性的,大家可以利用起来哦,是不是很酷。
学习方法很多种,关键看你如何选择,和优秀的人学习,才能不断进步不是嘛。

另外,今天给大家精心推荐一些行业里做的比较用心的技术公众号,覆盖不同的技术领域,相信对大家的技术成长之路有一定的帮助。

IT行业技术圈

(0)

相关推荐

  • 坚持学奥数——给孩子做榜样(第34天)

    第六题答案: (1)556×6=3336 或者445×5=2225 解析:△里只能填6或者5 . (2)225×5=1125 第七题答案: (1)1438+7204=8642 (2)838+9384= ...

  • 百度从Google学来的面试题,想进大厂必备!

    今天是小浩算法"365刷题计划"第59天.为大家分享一道FLAG和BAT都出现过的经典面试题.题目有一定难度,建议大家耐着性子看完!不要说没天赋看不懂.在这个浮躁到努力的人都很少的 ...

  • 中位数和众数

    ◎ 中位数和众数的定义 中位数:一般地,n个数据按大小顺序排列,处于最中间位置的一个数据(或最中间位置的两个数据的平均数)叫这组数据的中位数. 众数:在一组数据中,出现次数最多的数据. ◎ 中位数和众 ...

  • 寻找两个有序数组的中位数

    问题描述给定两个大小为m和n的有序数组nums1和nums2,找出这两个有序数组的中位数.示例一:nums1=[1,3]nums2=[2]则中位数为2示例二:nums1=[1,2]nums2=[3,4 ...

  • 奇数和偶数一样多,而且它们和自然数同样一样多,以前一直以为自然数多,奇数偶数少!

    奇数与偶数一样多,不仅如此奇数与偶数和自然数一样多 奇数与偶数的多少并不能用常规方法来比,因为如果方法不一,得出来的结论是完全不一样的,请看下面的比较 不禁要问,为什么从我们直觉理解,奇数与偶数一样多 ...

  • 正确的学习方法是学习成功的保证

    能熟练地使用各种学习方法和调控自己的学习心态,并能监控自己的学习过程,有效地达到学习目标是搞好学习的关键. 为什么有相同的学习条件.智力水平,可是学习成绩却有天壤之别?凡学有所成者,无不使用了科学的学 ...

  • 让孩子掌握正确的学习方法、提高学习成绩

    一位妈妈私聊我说:"每次陪娃学习,孩子不到5分钟就开始玩橡皮擦.踢桌子,根本没心思学习." 她也做过不少努力,比如给孩子的房间装上隔音材料.特意带着孩子去宜家选一套他喜欢的书桌.给 ...

  • 什么是正确的学习方法?

    有读者问,"我不敢思考,我怕自己思考的是错的:我不想学习,我怕自己的学习方法不正确.所以,什么才是正确的学习方法?我怎么能确保自己没有走错方向?" 我特别理解这样的心情,曾经我也是 ...

  • 思维导图 | ​​​​​​​​​比天赋更重要的,是正确的学习方法

    △ 是新朋友吗?记得先点笔记侠关注我哦- △点击图片查看大图 *思维导图是用国产软件XMind做的哦~笔记侠有一个神秘的组织,里面的人都研究怎么做思维导图,好奇请加小师妹. 原文传送门: 比天赋更重要 ...

  • 开学初二的同学注意了,掌握正确的学习方法,初三不掉队!

    升入初二,化学物理相继开设,历史.地理.生物也逐步进入教学内容.这么多科目在初二都要接触学习,都要掌握,都要理解,使得孩子们学业上的负担大大增加. 而且老师不像小学时手把手的教,一步步地学了,除了理解 ...

  • 正确的学习方法

    学习方法不但蕴含着对学习规律的认识,而且也反映了对学习内容理解的程度.在一定意义上,还是一种带有个性特征的学习风格.学习方法因人而异,但正确的学习方法应该遵循以下几个原则:循序渐进.熟读深思.自求自得 ...

  • 学会正确的学习方法,快速唤醒你的学习脑,创造《无限可能》

    了解你自己 相信你自己 爱上你自己 做好你自己 无论是处于哪一个人生阶段, 我相信每一个人都想拥有这么一个积极向上的心态. 可是困难重重,总有拦路虎阻挡着你进步 工作.生活.家庭.孩子... < ...

  • 【教育读书】正确的学习方法

    让知识回家 一站式收藏您的阅读与创作 [教育读书] 正确的学习方法     学习方法不但蕴含着对学习规律的认识,而且也反映了对学习内容理解的程度.在一定意义上,还是一种带有个性特征的学习风格.学习方法 ...