Introduction to Array
Java
中数组用大括号括起来ArrayList
是Java
内置的动态数组
Introduction to 2D Array
- C++用一个一维数组来存储二维数组,Java用嵌套的一维数组来存储二维数组
- Java中的动态二维数组可以用嵌套的动态数组来实现
- 二维数组的三道题对我来说都很有挑战性,到了二维,感觉问题就变复杂了
Introduction to String
- 字符串由字符数组组成,所以数组的大多数操作字符串都有
Java
是没有操作符重载的,所以对于引用类型,==
比较的是两个对象是否指向同一个内存地址,要比较两个字符串是否相等,用equals()
比较好Java
中,字符串是不可改变的,也就是字符串一旦初始化了,它就不可改变了- 如果想让字符串成为
mutable
,可以用toCharArray()
方法把它转换成字符数组- 如果需要频繁拼接字符串,可以用
Java
的内置数据结构StringBuilder
来代替String
- 数组方面的习题都还不太熟练,基本都参考了答案,而且好几个问题甚至是非常经典的问题,有更好的算法,不过这次第一次过就不去细究它们了
Two-Pointer technique
In-place
并不就是说空间复杂度为常数级,In-place
表示不用额外辅助的数据结构,但是并不是只有数据结构在使用内存,比如函数的递归也会占用内存- 双指针技术有两种常见的使用场景:1. 两个指针从不同的位置开始,2. 两个指针以不同的速度移动
- 练习题里有些在Array 101中做过了,另外有些还是有些难度的
总的来说,Array and String
这一章节做下来,一个是String
的一些方法不够熟悉,不会借用,一个是二维数组的复杂度上升,有些问题还是草草完成,没有细究,准备再做一遍。