内容介绍
1.本书所有题目的代码都为Java实现,但这并不会妨碍其他语言使用者的阅读。这是因为笔者在实现每一-道题 目时,都尽最大努力回避与Java语言特性相关的写法出现,而且尽量遵循大多数编程语言共有的写法习惯。所以,将本书中的Java实现改写成其他语言的实现是非常容易的。
2.在Java中,如果想得到字符串str第i个位置的字符,需用如下方式:
char p = str.charAt(i);
本书提供的函数中有大量参数为字符串类型的函数,但如上所示的方式并不符合大多数读者的阅读习惯。为了让代码更加易读,笔者都在这样的函数中把字符串类型的参数转换成char类型数组的变量来使用,例如:
char[] charArr = str.toCharArrayO);
此时得到字符串str 第i个位置的字符,可以用如下方式:
char p = charArr[i];
在本书中,发生如上转换行为的函数在估算额外空间复杂度的时候,笔者并没有把charArr的空间计算在内,这是因为如果不转换成char数组,而是选择直接使用原参数str,也是完全可以的,之所以选择转换,仅仅是为了让读者更容易读懂代码;是否进行转换对算法的逻辑没有任何影响,所以不把charArr的空间算作必须使用的额外空间。
内容目录展示
第1章栈和队列
第2章链表问题
第3章二叉树问题
第4章递归和动态规划
**第5章字符串问题 **.
第6章大数据和空间限制.
第7章位运算
第8章数组和矩阵问题
第9章其他题目