第 01 天题目
0001. 两数之和
- 标签:数组、哈希表
- 难度:简单
题目大意
描述:给定一个整数数组 nums
和一个整数目标值 target
。
要求:在该数组中找出和为 target
的两个整数,并输出这两个整数的下标。
解题思路
利用字典。字典中键值对信息为 target-nums[i] : i
。i
为下标。
遍历数组,对于每一个数 nums[i]
,先查找字典中是否存在 target - nums[i]
,存在则输出 target - nums[i]
对应的下标和当前数组的下标 i
。没有则在字典中存入 target-nums[i]
的下标 i
。
代码
1929. 数组串联
- 标签:数组
- 难度:简单
题目大意
给你一个长度为 n
的整数数组 nums
。
要求:构建一个长度为 2 * n
的答案数组 ans
,数组下标从 0
开始计数 ,对于所有 0 <= i < n
的 i
,满足下述所有要求:
-
ans[i] == nums[i]
。 -
ans[i + n] == nums[i]
。
具体而言,ans
由两个 nums
数组串联形成。最后返回数组 ans
。
解题思路
使用 ans
作为答案数组。然后按顺序遍历两次数组 nums
中的元素,并依次添加到 ans
的尾部。最后返回 ans
。
其实,Python
中更快速的做法是 return nums + nums
。
代码
思路 1:
思路 2:
0771. 宝石与石头
- 标签:哈希表、字符串
- 难度:简单
题目大意
给定一个字符串 jewels
代表石头中宝石的类型,再给定一个字符串 stones
代表你拥有的石头。stones
中每个字符代表了一种你拥有的石头的类型。
要求:计算出拥有的石头中有多少是宝石。
注意:字母区分大小写,因此 a
和 A
是不同类型的石头。
解题思路
用 count
来维护石头中的宝石个数。先使用哈希表或者集合存储宝石。再遍历数组 stones
,并统计每块石头是否在哈希表中或集合中,如果在,则 count += 1
,如果不在哈希表或集合中,则不统计。
最后输出答案 count
。
代码