我是一个全职妈妈,两年前在上海一家人力资源公司从事流程管理、质量监控的工作,3年工作经验。后来随老公来到硅谷,发现软技能在美国无用武之地后,经过半年的思考,终于决定转行学习CS, 硬技术才是王道啊!决定后,我开始找寻学习的方向:(1)最开始接触html和CSS,后来发现兴趣不大,感觉这种东西更像是word,三个月后放弃;(2)然后听说APP特别火,于是尝试着摸索objectC,发现面向对象完全无法理解,三个月后,决定放弃。 (3)然后开始接触JAVA,听了国内曹学松老师的一些网络课程,感觉还有点感觉。加上中间怀二胎,速度很慢的把计算机的基础知识补充了一下。最近开始学习算法和数据结构,同时练习一些相关的leetcode的题目(只敢做easy)。终于有了那么一点点入门的感觉了!
下面谈谈最近一个阶段学习的东西:
最近10来天主要学习的数据结构和算法,主要看的是数组和链表。
一、数组
数组的概念对于我来说相对容易理解一些,在大学通过C语言二级的时候就有所接触。数组方面我主要练习了leetcode上面的两道题,一道是Two Sum,一道是Remove Duplicate from sorted array.
(一) Two Sum的过程中主要学习到了HashTable,HashTable最方便的地方是有一种对应关系,可以通过值,直接返回下标。具体用法如下:
(二)Remove Duplicate学习的过程中主要学习到了Two pointer的一个算法,我认为双指针中,首尾指针比较好理解,但是快慢指针我理解了一个下午。我开始总是认为快慢指针都是用来遍历的,后来才发现原来一个用来保存,一个用来遍历。
来源: http://www.cnblogs.com/zuofeiyi/p/linked-list-and-array-java-learning-notes-1.html