题目:大整数乘法除法,楼梯走法,数组中不同数字,超过一半数字(好)

Posted 笨鸟居士的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题目:大整数乘法除法,楼梯走法,数组中不同数字,超过一半数字(好)相关的知识,希望对你有一定的参考价值。

大整数乘法,可以用单个数字想乘,跟踪进位信息来处理。

大整数除法,可以先把除数增大到跟被除数相同的量级,然后累计相减。比如 555 / 3,就先把3增大到300,555能够减1次,那么结果+100,被除数变成255,依次进行。

 

楼梯走法:一次走一级,或者走两级。没什么难度。

数组中不同数字:如果是2n+1数组找出不同的那个数字,用异或就可以。

 

如果是找出超出一般数目的数字,用遍历,看到不一样的,就一起删除,这样的方式。

上网搜了一下,找出了更好的方法:

变量记录备选数字,一个计数器记录该数字剩余的次数。备选数字初始化为第一个元素,计数器为1。

当遇到相同的数字,则计数器+1;当遇到不同的数字,计数器-1;如果计数器<0,则备选数字设为当前数,并且计数器重置为1.

最后,备选数字就是出现次数 > 一半的数字(注意是严格大于,等于是不满足这个算法的)。等于的话,有可能最后一对保存的是次数很少的数,而不是到达一半的数字。

 

关键这类题目还有很多引申。

 

以上是关于题目:大整数乘法除法,楼梯走法,数组中不同数字,超过一半数字(好)的主要内容,如果未能解决你的问题,请参考以下文章

100003. 上楼梯

数组乘法(大整数相乘)

高精度:数楼梯

n阶楼梯,一次走1,2,3步,求多少种不同走法

爬楼梯

numpy数组中元素的乘法和除法给出整数结果