随想录

代码随想录算法训练营第9天| ●28. 实现 strStr() ●459.重复的子字符串 ●字符串总结 ●双指针回顾

28.找出字符串中第一个匹配项的下标 mydemo--(my thought)--(falied) class Solution { public: int strStr(string haystack, string needle) { for(int i=0; i<haystack.size() ......
字符串 字符 随想录 训练营 指针

代码随想录算法训练营第8天| ● 344.反转字符串 ● 541. 反转字符串II ● 剑指Offer 05.替换空格 ● 151.翻转字符串里的单词 ● 剑指Offer58-II.左旋转字符串

344.反转字符串 mydemo--(一次就过)--(成功) class Solution { public: void reverseString(vector<char>& s) { int len = s.size(); char tmp; int i=0; int j = len-1; wh ......
字符串 字符 随想录 左旋 Offer

[代码随想录]Day44-动态规划part12

题目:309. 买卖股票的最佳时机含冷冻期 思路: 具体可以区分出如下四个状态: 状态一:持有股票状态(今天买入股票,或者是之前就买入了股票然后没有操作,一直持有) 不持有股票状态,这里就有两种卖出股票状态 状态二:保持卖出股票的状态(两天前就卖出了股票,度过一天冷冻期。或者是前一天就是卖出股票状态 ......
随想录 随想 代码 动态 part

代码随想录算法训练营第七天

代码随想录算法训练营第七天 | LeetCode 344(反转字符串) LeetCode 541(反转字符串II) LeetCode 剑指05(替换空格) LeetCode 151(反转字符串中的单词) LeetCode 剑指58(II.左旋转字符串) 344:反转字符串 LeetCode 344( ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第7天| ● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和

454.两数相加 Ⅱ mydemo--(超时失败) class Solution { public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) { ......
之和 随想录 训练营 随想 算法

[代码随想录]Day43-动态规划part11

题目:123. 买卖股票的最佳时机 III 思路: 达到dp[i][1]状态,有两个具体操作: 操作一:第i天买入股票了,那么dp[i][1] = dp[i-1][0] - prices[i] 操作二:第i天没有操作,而是沿用前一天买入的状态,即:dp[i][1] = dp[i - 1][1] 那么 ......
随想录 随想 代码 动态 part

代码随想录算法训练营第六天

代码随想录算法训练营第六天 | LeetCode 454(四数相加II) LeetCode 383(赎金信) LeetCode 15(三数之和) LeetCode 18(四数之和) 454:四数相加II LeetCode 454(四数相加II) 思路: 首先定义 一个map,key放a和b两数之和, ......
随想录 训练营 随想 算法 代码

[代码随想录]Day42-动态规划part10

题目:121. 买卖股票的最佳时机 思路: 贪心做起来更简单;dp多此一举……状态0是有买入,状态1是 代码: func maxProfit(prices []int) int { lens := len(prices) if lens == 0 { return 0 } dp := make([] ......
随想录 随想 代码 动态 part

代码随想录算法训练营第五天

代码随想录算法训练营第五天 | LeetCode 242(有效的字母异位词) LeetCode 349(两个数组的交集) LeetCode 202(快乐数) LeetCode 1(两数之和) 242:有效的字母异位词 LeetCode 242(有效的字母异位词) class Solution { p ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第六天| 242.有效的字母异位词,349.两个数组的交集,202.快乐数,1.两数之和

242. 有效的字母异位词 mydemo--(成功)--(学了卡哥的思路) class Solution { public: bool isAnagram(string s, string t) { int alphabet = 26; int hash[alphabet]; for(int i=0 ......
随想录 之和 训练营 数组 交集

[代码随想录]Day41-动态规划part09

题目:198. 打家劫舍 思路: 决定dp[i]的因素就是第i房间偷还是不偷。 如果偷第i房间,那么dp[i] = dp[i - 2] + nums[i] ,即:第i-1房一定是不考虑的,找出 下标i-2(包括i-2)以内的房屋,最多可以偷窃的金额为dp[i-2] 加上第i房间偷到的钱。 如果不偷第 ......
随想录 随想 代码 动态 part

代码随想录算法训练营第四天

代码随想录算法训练营第四天 | LeetCode 24(两两交换链表中的节点) LeetCode 19(删除链表的倒数第N个节点) LeetCode 160(链表相交) LeetCode 142(环形链表II) 24:两两交换链表中的节点 LeetCode 24(两两交换链表中的节点) 思路: 这道 ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第四天| 24. 两两交换链表中的节点, 19.删除链表的倒数第N个结点,面试题02.07.链表相交,142.环形链表Ⅱ

24. 两两交换链表中的节点 mydemo(超时) /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullpt ......
随想录 结点 环形 训练营 节点

代码随想录算法训练营第三天

代码随想录算法训练营第三天 | LeetCode 203(移除链表元素) LeetCode 707(设计链表) LeetCode 206(反转链表) 203:移除链表元素 LeetCode 203(移除链表元素) 思路 遍历链表 等值删除 双指针 方法一:虚拟头节点 方法二:直接在原链表删除 方法一 ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第三天| 203.移除链表元素 707.设计链表 206.反转链表

203.移除链表元素 链表定义 struct ListNode { int val; ListNode* next; ListNode(): val(0), next(NULL) {}; ListNode(int x): val(x), next(NULL) {}; ListNode(int x, ......
随想录 训练营 随想 算法 元素

[代码随想录]Day40-动态规划part08

题目:139. 单词拆分 思路: 单词就是物品,字符串s就是背包,单词能否组成字符串s,就是问物品能不能把背包装满。 拆分时可以重复使用字典中的单词,说明就是一个完全背包! 动规五部曲分析如下: 确定dp数组以及下标的含义:dp[i] : 字符串长度为i的话,dp[i]为true,表示可以拆分为一个 ......
随想录 随想 代码 动态 part

代码随想录刷题记录——栈与队列篇

栈与队列理论基础 栈stack:先进后厨 队列queue:先进先出 STL(C++标准库) STL 栈和队列属于容器适配器(container adapter) 优先队列priority_queue: 默认大根堆,如果是pair<a,b>,默认比较a大小 如果需要比较b大小,且小根堆,可以如下实现 ......
随想录 队列 随想 代码

代码随想录算法训练营第二天| 977.有序数组的平方,209.长度最小的子数列,59.螺旋矩阵Ⅱ

## 977.有序数组的平方 双指针法 因为负数平方后也会变大,所以较大的平方值只可能在靠近两端的位置,越往中间走平方值必定越小。 > 所以,在原数组两端各定义一个指针,慢慢往中间走,然后把平方值按顺序放到新数组里即可。 ```c++ class Solution { public: vector ......
随想录 数列 训练营 数组 矩阵

[代码随想录]Day39-动态规划part07

## 题目:[70. 爬楼梯](https://leetcode.cn/problems/climbing-stairs/description/) ### 思路: 除了`dp[i] = dp[i-1] + dp[i-2]`还可以用完全背包的方法,可以放无数个1或者2,看有多少种排列(先背包后物品) ......
随想录 随想 代码 动态 part

代码随想录刷题记录——双指针篇

27. 移除元素 题目链接 快慢指针,最终返回index值为移除元素后的数组末尾元素下标+1. #include<vector> using namespace std; class Solution { public: int removeElement(vector<int>& nums, in ......
随想录 指针 随想 代码

代码随想录个人笔记——字符串篇

344. 反转字符串 题目链接 #include<bits/stdc++.h> using namespace std; class Solution { public: void reverseString(vector<char>& s) { int len = s.size(); for(in ......
随想录 字符串 随想 字符 代码

代码随想录算法训练营第二天

# 代码随想录算法训练营第二天 | [LeetCode 977(有序数组的平方)](https://leetcode.cn/problems/squares-of-a-sorted-array) [LeetCode 209(长度最小的子数组)](https://leetcode.cn/problem ......
随想录 训练营 随想 算法 代码

代码随想录刷题记录——哈希表

哈希表基础知识 哈希表(Hash table)又称散列表,是根据关键码的值而直接进行访问的数据结构 哈希表一般用来快速查询元素a是否在集合B中,O(1)时间复杂度即可做到,枚举的话则是O(n) 哈希函数hashFunction(x):将输入x映射为哈希表上的索引,之后通过查询索引下标即可快速查询x ......
随想录 随想 代码

[代码随想录]Day38-动态规划part06

![](https://img2023.cnblogs.com/blog/2527234/202309/2527234-20230907092218272-2002797447.png) ## 题目:[518. 零钱兑换 II](https://leetcode.cn/problems/coin-c ......
随想录 随想 代码 动态 part

代码随想录算法第一天704

# 代码随想录算法第一天|704.二分查找、27.移除元素 ## 学习(复习)数组理论基础: ​ (https://programmercarl.com/数组理论基础.html) ​ 新了解到Java中数组地址不是连续的。 ## 704.二分查找 ### 题目 > > >题目链接:https://l ......
随想录 随想 算法 代码 704

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

# 数组 ## 704.二分查找 mydemo ```c++ class Solution { public: int search(vector& nums, int target) { int len = nums.size(); //cout target) { right = mid - 1 ......
随想录 训练营 随想 算法 元素

代码随想录算法训练营第一天

# 代码随想录算法训练营第一天 | [LeetCode 704(二分查找)](https://leetcode.cn/problems/binary-search/description/) [LeetCode 35(搜索插入位置)](https://leetcode.cn/problems/sea ......
随想录 训练营 随想 算法 代码

[代码随想录]Day37-动态规划part05

## 题目:[1049. 最后一块石头的重量 II](https://leetcode.cn/problems/last-stone-weight-ii/) ### 思路: 和昨天的类似,越靠近和的一半剩下的就越少。 ` 相对于 01背包,本题中,石头的重量是 stones[i],石头的价值也是 s ......
随想录 随想 代码 动态 part

代码随想录算法训练营第十四天|二叉树的递归法、迭代法

## 二叉树的递归遍历(前中后序遍历-递归法与迭代法) **递归三部曲:** 1. **确定递归函数的参数和返回值** 2. **确定终止条件** 3. **确定单层递归的逻辑** ### 递归法对二叉树进行前中后序遍历(力扣144.145.94.) ```java // 前序遍历·递归·LC144 ......
迭代法 随想录 训练营 随想 算法