算法通关之路
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

总结

本章先从n数和开始,从最简单的两数和,到三数和、四数和,再到最后的最接近的三数和,通过多种方法多个角度来解决问题,相信之后你碰到类似的题目,也能够采取类似的方法,打开思路。

最大子序列和是一个经典的动态规划问题,很多人的第一反应就是动态规划,这本身并没有问题,但是从数学角度来看,也可以转化为前缀和问题,这何尝不是一种从数学角度的降维打击。

如果说前面的6道题不是真正的数学题,那么后面的4道题可以算是真正的数学题了,需要有点数学基础知识才能解决,但是其涉及的数学知识又非常简单,甚至题目已经对部分内容进行了解释,以至于即使你之前对相关知识点并不了解,也不影响你解决问题。

除本章列举的10道题之外,还有很多经典题目。由于篇幅有限,不方便在这里进行展开讲解。下面我列举了几个有代表性的题目,读者可以结合本章学习的内容进行针对性练习。

● 面试题17.01.不用加号的加法(见参考链接/正文[2])。

● 第29题两数相除(见参考链接/正文[3])。

● 第43题字符串相乘(见参考链接/正文[4])。

● 第69题x的平方根(见参考链接/正文[5])。

● 第50题Pow(x,n)(见参考链接/正文[6])。

● 第204题计数质数(见参考链接/正文[7])。

● 丑数系列

另外,我列举一下力扣(LeetCode)中常见的数学知识点。

● 质数:质数的概念、性质及质数筛选法。

● 实现加/减/乘/除、平方、次方及开根号。

● 矩阵运算、矩阵的基本性质、矩阵的旋转等。

● 最大公约数:如何计算两个数的最大公约数,最大公约数的性质。

● 排列组合:排列组合的概念及计算。

如果读者对上面的知识点比较陌生,建议有针对性地学习加强。