Career Cup Top 150第一版1.8题:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。给定整数k,求第k小的丑数。
第一眼看到这个题时,第一想法就是枚举,设置一个最小堆,初始堆中仅第一个丑数1。操作过程如下:
步骤1. 设置一个最小堆D,设置一个队列Q。项堆中加入元素1;
步骤2. 取堆顶元素A,即最小值,将A加入队列Q中;
步骤3. 将A分别乘上2、3、4,假设得到A2、A3、A5;
步骤4. 在最小堆D中依次...
Career Cup Top 150第一版1.6题:给定两个整数A和B,不使用任何四则运算,即加、减、乘、除运算符,求解A+B。假设A+B是int范围内的整数。
你第一眼见到这个题目,可以想出几种解法?一种,还是两种,还是有很多想法? 我第一眼看到这个题目只能相处一种解法,通过二进制运算来求解,不过现在我已经知道了另一种解法。下面我介绍我所知道的两种解法:
解法1:二进制运算
面对这个题目,如果你第一想法就想到了二进制方面的东东,那么你基本上可以解决该题。思考:在大学一年级就学过,&a...