随想

代码随想录算法训练营第四天| 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 ......
迭代法 随想录 训练营 随想 算法

[代码随想录]Day36-动态规划part04

## 题目: ### 思路: 只有确定了如下四点,才能把01背包问题套到本题上来。 - 背包的体积为sum / 2 - 背包要放入的商品(集合里的元素)重量为 元素的数值,价值也为元素的数值 - 背包如果正好装满,说明找到了总和为 sum / 2 的子集。 - 背包中每一个元素是不可重复放入。 ## ......
随想录 随想 代码 动态 part

编程随想曲周刊(第44期)

这里记录每周的所见所闻,周日发布。点击阅读原文可以直接访问文章链接。 # 编程 1. [科技爱好者周刊#269](https://mp.weixin.qq.com/s/eDfl8npL02Ei5SQYZL6tfw) # 文章 1. [理想的写作环境](https://mp.weixin.qq.com ......
随想曲 随想 周刊

[代码随想录]Day35-动态规划part03

## 题目:[343. 整数拆分](https://leetcode.cn/problems/integer-break/ "343. 整数拆分") ### 思路: 状态转移方程:`dp[i] = max(dp[i], max((i-j)*j,dp[i-j]*j))`,其中`(i-j)*j`是把i分 ......
随想录 随想 代码 动态 part

代码随想录算法训练营第三十天| 51. N皇后 37. 解数独 总结

卡哥建议:今天这三道题都非常难,那么这么难的题,为啥一天做三道? 因为 一刷 也不求大家能把这么难的问题解决,所以 大家一刷的时候,就了解一下题目的要求,了解一下解题思路,不求能直接写出代码,先大概熟悉一下这些题,二刷的时候,随着对回溯算法的深入理解,再去解决如下三题。 大家今天的任务,其实是 对回 ......
解数 随想录 训练营 随想 皇后

代码随想录算法训练营第二十九天| 491.递增子序列 46.全排列 47.全排列 II

491.递增子序列 卡哥建议:本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。 https://programmercarl.com/0491.%E9%80%92%E5%A2%9E%E5%AD%90%E5%BA%8F%E5%88%97.html 视频讲解:https://ww ......
随想录 训练营 九天 序列 随想

代码随想录刷题记录——链表

链表相关题目 2023-09-01 707.设计链表-leetcode 题目链接 题目: 关键点: 定义成员变量: private: int _size; Node *_dummyHead; 定义链表节点结构体和构造函数: //定义链表节点结构体 struct Node { int val; Nod ......
随想录 随想 代码

代码随想录算法训练营第二十八天| 93.复原IP地址 78.子集 90.子集II

93.复原IP地址 卡哥建议:本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了 题目链接/文章讲解:https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80.html 视频讲解:https:/ ......
子集 随想录 训练营 随想 算法

代码随想录算法训练营第二十七天| 39. 组合总和 40.组合总和II 131.分割回文串

39. 组合总和 卡哥建议:本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制 题目链接/文章讲解:https://programmercarl.com/0039.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8C.html 视频讲解 ......
总和 随想录 回文 训练营 随想

代码随想录算法训练营第二十五天| 216.组合总和III 17.电话号码的字母组合

216.组合总和III 卡哥建议:如果把 组合问题理解了,本题就容易一些了。 题目链接/文章讲解:https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8CIII.html 视频讲解:https://www.bilibil ......
随想录 训练营 总和 随想 算法

[代码随想录]Day34-动态规划part02

## 题目:[62. 不同路径](https://leetcode.cn/problems/unique-paths/) ### 思路: **首先想到的是数论方法组合数其实就是向右和向下的步数是固定的,就找一个组合的个数就可以了。** 状态转移方程:一个位置的路径数就是,上面位置和左面位置路径数的和 ......
随想录 随想 代码 动态 part

代码随想录——数组篇

#二分查找 [题目链接](https://leetcode.cn/problems/binary-search/ "题目链接") 注意:求均值防溢出,left+(right-left)/2等价于(left + right)/2。 ![image](https://img2023.cnblogs.co ......
随想录 数组 随想 代码

[代码随想录]Day33-动态规划part01

## 题目:[509. 斐波那契数](https://leetcode.cn/problems/fibonacci-number/) ### 思路: 动规五部曲: 这里我们要用一个一维dp数组来保存递归的结果 1. **确定dp数组以及下标的含义** dp[i]的定义为:第i个数的斐波那契数值是dp ......
随想录 随想 代码 动态 part

[6]-代码随想录算法训练营-dat7-哈希表-part2

## 代码随想录算法训练营第七天|哈希表-part2 ### 1. LeetCode [454. 四数相加 II](https://leetcode.cn/problems/4sum-ii/) > 1. 题目 > > - https://leetcode.cn/problems/4sum-ii/su ......
随想录 训练营 随想 算法 代码