1:不用API,计算power(m, n)要求复杂度在logn
解:n个数相乘,复杂度是n,而logn是典型的折半思维,因此要想办法使每次计算次数减半,在while循环内,求n/2个m^2的和->求n/2/2个m^2^2的和->...
pseudo code:
long result = 1L;
while(n!=1){
if(n & 1 == 1){
result *= m;
}
m=m*m;
n=n/2;
}
这个题还可以通过递归.
2:a[m][n], 其中a[m][n+1] > a[n][n], a[m+1][n] > a[m][n],即一个矩形,右边的数比左边大,下边的数比上边的大.
求:给定一个数A,判断A是否存在于a中
解:不要想取a[m/2][n/2]与A比较,这样的话会陷入麻烦. 可以取右上角的数与A比较,如果比A大则移除第n列,如果比A小则移除第1行,然后再用剩下的右上角数与A比较. 复杂度为m+n.
也可以用左下角的数与A比较,但不能用左上角或右下角的数.
3:设计一个stack,实现pop() push() min()复杂度都是1
解:pop, push复杂度本来就是1, 可用辅助栈来实现min, 在向主栈push元素的时候,可比较当前push的元素与辅助栈顶元素比较,如果比栈顶元素小则push到辅助栈;在pop的时候,如果当前pop的元素和辅助栈顶元素相同则把辅助栈顶元素也pop掉.
4:如果两个单向链表(长度分别为m,n)有重合结点,求出复合结点,复杂度m+n
解:如果有重合结点,那么从重合结点后两个链表的所有结点都相同,定义两个指针P1,P2,让长的链表的指针先走|m-n|,然后两指针同时走.
分享到:
相关推荐
编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集...
《Visual C++常用数值算法集》是一本专为C++开发者设计的实用指南,主要涵盖了在编程过程中经常遇到的各种数值计算方法。这本书的源代码集合提供了丰富的实例,帮助读者理解和应用这些算法,从而提升在科学计算、...
"c语言常用算法集"这个资源可能包含了一系列用C语言编写的经典算法实现,这些算法可能涵盖了数据结构、排序、搜索、图论等多个方面。下面我们将逐一探讨这些可能包含在压缩包中的知识点。 1. **数据结构**:C语言中...
Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法...
这份合集可能包含的算法类别广泛,如排序算法(如冒泡排序、快速排序、归并排序和堆排序)、查找算法(如二分查找、哈希查找)、图论算法(如深度优先搜索、广度优先搜索、最短路径算法如Dijkstra和Floyd-Warshall)...
C常用算法集(都是比较经典的算法 chm)
数据结构常用算法集.chm 数据结构常用算法集.chm 非常方便
编程语言算法集/Rust编程语言算法集/Rust编程语言算法集/Rust编程语言算法集/Rust编程语言算法集/Rust编程语言算法集/Rust编程语言算法集/Rust编程语言算法集/Rust编程语言算法集/Rust编程语言算法集/Rust编程语言...
不错的数据结构常用算法集,不过是英文的,大家自己斟酌再下吧!
包涵MATALB常用的算法集,讲解很细致、很全面。适用于参与数学建模的项目
Java 常用数值算法集.part2.rar
排序算法集 排序算法集 排序算法集 排序算法集 排序算法集 排序算法集 排序算法集 排序算法集 排序算法集 排序算法集
徐士良著 C常用算法集.pdf part2
2002 Visual Fortran常用数值算法集 (何光渝 高永利) 电子书
Java常用数值算法集 源代码 何光渝编 iso版本
Visual+Fortran常用数值算法集,Fortran 居家必备啊
VB常用数值算法集(完整版)+(光盘).part2.rar
Delphi 常用数值算法集, 1、上百种格式算法; 2、包含“Delphi 常用数值算法集.PDF”; 3、以及随书“源代码光盘”,包涵源代码,和DEMO演示; 4、对于需要研究优秀算法的同学们,是一个不错的选择。
数据结构常用算法集 数据结构常用算法集 数据结构常用算法集
VB常用数值算法集(完整版)+(光盘).part1.rar 里面包含一个22.6M的pdf文件和一个源码的压缩包文件