Data Structure--数组(Array)

优点

  • 构建非常简单

  • 能在 O(1) 的时间里根据数组的下标(index)查询某个元素

缺点

  • 构建时必须分配一段连续的空间

  • 查询某个元素是否存在时需要遍历整个数组,耗费 O(n) 的时间(其中,n 是元素的个数)

  • 删除和添加某个元素时,同样需要耗费 O(n) 的时间

基本操作

  • insert:在某个索引处插入元素

  • get:读取某个索引处的元素

  • delete:删除某个索引处的元素

  • size:获取数组的长度

案例一:翻转字符串“algorithm”

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

案例二:给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。

说明:你可以假设字符串只包含小写字母。

解题思路:字母异位词,也就是两个字符串中的相同字符的数量要对应相等。

  • 可以利用两个长度都为 26 的字符数组来统计每个字符串中小写字母出现的次数,然后再对比是否相等

  • 可以只利用一个长度为 26 的字符数组,将出现在字符串 s 里的字符个数加 1,而出现在字符串 t 里的字符个数减 1,最后判断每个小写字母的个数是否都为 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值