- 博客(7)
- 收藏
- 关注
原创 代码随想录day5 | 哈希表
暴力法, 双重循环,外层遍历,作为一个加数,内层作为另一个加数,如果相加为目标值则可直接返回数组下标。遍历nums2,若元素对应的数组值为1,即发生冲突,则把该元素加入结果数组,并标记为2。可以从最开始的数开始进行计算并装填哈希表,一旦发生冲突,说明有死循环,返回false。数组值为0表示没有该元素,为1表示有该数,为2表示该位置已经发生过一次冲突。定义一个长度为1000的数组,对应数字元素0~1000,数组初始化为0。最后检查数组,如果每个数都是0,则是互为字母异位,否则不满足。
2024-02-18 21:55:38 435
原创 代码随想录day4 | 链表
先让快指针走n步,接着慢指针和快指针保持这个距离一起移动,直到快指针是最后一个结点,此时慢指针的下一个结点即要删除的结点。A从起点走到环入口,B从相遇结点绕环n(n>=1)圈载走z这么长,最后和A在环入口相遇,据此可求入口节点。因为相交链表是两链表从某一结点开始到末尾都相同,所以相交链表长度一定小于或等于比较短的链表的长度。先用双指针法,选取较长链表中,与较短链表长度一样的,且处于最末的子链表。逐一比较选取的子链表和较短链表中的每个节点,返回符合要求的节点的值。该式可理解,有两指针A和B,每次走一步。
2024-02-18 14:09:13 380
原创 代码随想录day1 | 二分查找和移除元素
不删除元素,遍历数组,声明两个数组下标A和B,B用于顺序遍历数组,当遍历到的数字不是目标数字时候,A位置的数赋值为B数字的数字,并将两指针后移;1. 一开始用erase函数直接从向量中删除元素之后,忽略了下标的改变让for循环中的i保持并继续增大,这样往后遍历导致了溢出的错误。每次将目标数与中间位置的数字比较,目标数大则在中间位置数的右半边找,目标数小则在左边找,找的过程亦然。修改:当遍历到的数与目标数字一样时,从向量中删去该数,并让i自减1调整到正确的遍历位置。那么遵循这个规则再想另一个思路。
2024-02-09 13:16:36 289 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人