- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 代码随想录训练营 第六天
这是一道模拟题,不涉及到具体算法,考察的就是对栈和队列的掌握程度。使用栈来模式队列的行为,如果仅仅用一个栈,是一定不行的,所以需要两个栈,这里要注意输入栈和输出栈的关系。下面动画模拟以下队列的执行过程:执行语句: queue.push(1);
2024-05-17 16:48:47
145
原创 代码随想录训练营第四天(链表2)
交换节点(cur->next = cur->next->next;//头节点指向节点2 cur->next->next =tmp;//保存第一个节点 ListNode* tmp1 = cur->next->next->next;可以使用快慢指针法,分别定义 fast 和 slow 指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。节点0指向节点2(cur->next = cur->next->next;
2024-05-14 14:43:19
1386
1
原创 代码随想录训练营打卡第三天(链表)
1.首先判断头节点是否为空,头节点值是否等于目标值(如果等于 设置一个临时指针tmp 指向头指针,将头节点变为头结点的下一个节点(head =head->next),删除指针释放内存(delete tmp))将当前节点的下一节点指向 下一节点的下一节点 (有点绕,就是指向上一步创建的指针的下一节点)(cur->next = tmp->next;如果当前节点的下一节点的值等于target(if(cur->next->val ==val ))则当前节点改为指向下一节点(cur =cur->next)
2024-05-14 14:31:42
1220
1
原创 代码随想录37期训练营打卡第二天 (数组)
上边:从左到右列变换,左闭右开每条边的最后一个位置不遍历(;// 滑动窗口起始位置,终止位置在for循环当中向右遍历)右边:从上到下行变换,左闭右开每条边的最后一个位置不遍历(;特殊:当n为奇数时对中间位置单独处理(if(n%2){ //这里的count赋值后不再++将有较大平方和的指针向中间靠近(左指针+1or右指针-1)当左指针大于右指针时退出循环。下边:从右到左列变换,左闭右开每条边的最后一个位置不遍历。(注意:这里的循环中i,j不断变换 所以不需要赋值)控制每行遍历的长度(offset+=1)
2024-05-09 17:52:35
858
原创 代码随想录37期代码训练营打卡第一天(数组)
思路:定义头尾两个指针 left right定义中间变量middle = left + ((right -left)/2)根据nums[middle]与target的比较大小更新左右指针左闭右闭(包含右区间则 while(left<=right),right =nums.size()-1 ,right = middle -1;左闭右开(包含右区间则 while(left<right),right =nums.size(),right = middle -1;
2024-05-08 14:39:14
491
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人