- 博客(2)
- 收藏
- 关注
原创 Leetcode Part2
最开始想到的是单指针,但是无法处理连续相同的目标值,故想到双指针法,设立首尾指针,先判断数组是否为空,其次判断尾指针所指元素是否为目标值,是则使用vector的内置函数去除尾元素,并让尾指针重新指向末尾元素;否则判断首指针的元素是否为目标值,若不是,使首指针后移;若是,交换首尾指针所指元素,去除尾元素,重新赋值尾指针。在跳出循环后,判断数组大小,若数组只有一个,且元素为目标值,可能原数组所有元素都相等,直接返回0,反之返回数组大小。
2024-07-08 23:46:30 132
原创 Leetcode Part1
首先,根据题目查找两数之和,可以通过做差转化为已知一个数求另一个数,故想到利用hash法,而题目又说还要包含下标,因此采用unordered_map无需键值对容器,存储被访问过的数和下标。其次,通过遍历数组,判断每个数所对应差值是否在map中存在,若无则将该数及其下标放入map,否则返回该数和找到数的下标。先从头一次枚举遍历整个数组,另一个数则从第一个数之后枚举,时间复杂度较高。// 如果没找到匹配对,就把访问过的元素和下标加入到map中。// 遍历当前元素,并在map中寻找是否有匹配的key。
2024-06-29 15:55:43 373
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人