- 博客(6)
- 收藏
- 关注
原创 代码随想录算法训练营day05
由于字母总共26个,所以有限空间,要标记出现的次数,直接用vector来标记,a-z可以用相对下标来表示(x的下标为x-'a')
2024-05-15 10:12:01 497
原创 代码随想录算法训练营day04
两个链表的公共部分是在链表末尾,所以先分别遍历两个链表,得到各自的长度,算出distance。2. 注意在进行dummyhead的创建过程中,不要忘记dummyhead->next=head(初始化)了---->while(cur->next!3. 注意每次交换中有两个临时变量需要保存,否则链表会断:temp1,temp2。用一个fast指针每次移动两步,slow指针每次移动1步,相遇则说明有环。4. 每次是处理两个节点,所以:cur=cur->next->next。空间复杂度:O(1)
2024-05-14 21:55:26 297 2
原创 代码随想录算法训练营day03
为了使删除头结点的操作和删除其他节点的操作一致,设置一个dummyhead,并且dummyhead->next=head;并且需要注意的是,只有当cur->next->val==val时,才做删除处理。
2024-05-12 22:45:09 457
原创 代码随想录算法训练营day02
对于有序数组的平方,最大平方在数组的两侧,所以使用双指针,从数组的前后分别对比,得到依次的最大平方,并将每次选出的“最大平方”存在新容器result中(注意要求非递减,所以从result末尾开始插入)。停止条件为i>j,所以用一个while(i=s,就可以缩短窗口,即找更小满足条件的子数组。滑动窗口就是不断调整窗口的起始位置和终止位置得到我们要的结果。时间复杂度:O(n)时间复杂度:O(n)
2024-05-09 14:17:01 458
原创 代码随想录算法训练营day01
当 target<nums[middle], 则right=middle-1;若 target>nums[middle], 则left=middle+1。当target<nums[middle], 则right=middle;若target>nums[middle], 则left=middle+1。两层for循环,第一层循环用i遍历数组元素,当nums[i]==val时,利用第二层for循环更新数组。快指针:寻找新数组的元素,新数组就是不含目标元素的数组。空间复杂度:O(1)空间复杂度:O(1)
2024-05-08 17:21:27 376
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人