从今天开始刷LeetCode,目标:每周至少刷一个Coding Question,出一篇data structure学习博文进行总结。Fighting!
解出的代码案例也都会在我的GitHub上进行维护。如果觉得对您有帮助,欢迎star or fork~
附上GitHub项目地址:https://github.com/zrxJuly/dataStructure。
本文首发于我的个人博客:zrxJuly’s Blog,欢迎访问,Let’s study together.
数组简介
数组是数据结构中的基本模块之一,因为字符串是由字符数组形成的,所以二者是相似的。
数组是一种基本的数据结构,用于按顺序存储元素集合,数组中的每个元素都可以通过数组索引来识别,元素可以随机存取。数组可以有一个或多个维度,
一维数组:也叫线性数组。数组具有固定的容量,我们需要在初始化时指定数组的大小。然而这种在初始化时指定数组大小的方法会很不方便甚至可能会造成浪费。
Array Demo学习
1 | package com.zrxjuly.ds.arrayandstring.study; |
动态数组简介
动态数组:是大小可变的随机存取的列表数据结构。大多数编程语言都会提供内置的动态数组。eg:在C++中的vector,Java中的ArrayList。
Dynamic Array Demo 学习
1 | package com.zrxjuly.ds.arrayandstring.study; |
Coding Question:寻找数组的中心索引
该Coding Question是LeetCode上数组模块的第一个编程问题。这里展示了两种解题思路及方法:
思路一
目标索引的左侧的数的总和 = 目标索引的右侧的数的总和。
思路二
左侧及索引对应的数 的总和+索引对应的数 = 总和-左侧及索引对应的数的总和+索引对应的数。
详细分析请看代码及注释,或访问:https://github.com/zrxJuly/dataStructure
1 | package com.zrxjuly.ds.arrayandstring.demo; |