常用数据结构讲解与案例分析

数据结构是算法的基石,如果没有扎实的数据结构基础,想要把算法学好甚至融会贯通是非常困难的,而优秀的算法又往往取决于你采用哪种数据结构。

 

所以,接下来两节课的主题是,在算法面试中经常会被用到的数据结构以及一些实用技巧。同时穿插一些经典的题目,加深理解。这节课主要讲:

  • 数组、字符串

  • 链表

  • 队列

  • 双端队列

 

数组、字符串(Array & String)

 

字符串转化

数组和字符串是最基本的数据结构,在很多编程语言中都有着十分相似的性质,而围绕着它们的算法面试题也是最多的。

 

很多时候,在分析字符串相关面试题的过程中,我们往往要针对字符串当中的每一个字符进行分析和处理,甚至有时候我们得先把给定的字符串转换成字符数组之后再进行分析和处理。

 

举例:翻转字符串“algorithm”。

 

 

      

解法:用两个指针,一个指向字符串的第一个字符 a,一个指向它的最后一个字符 m,然后互相交换。交换之后,两个指针向中央一步步地靠拢并相互交换字符,直到两个指针相遇。这是一种比较快速和直观的方法。

 

注意:由于无法直接修改字符串里的字符,所以必须先把字符串变换为

你可能感兴趣的:(数据结构)