随想录

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

Leetcode704:二分查找 今日学习的文章链接: 代码随想录 (programmercarl.com) 题目链接: 704. 二分查找 - 力扣(LeetCode) ● 自己看到题目的第一想法 这题我会,但是还没明白卡尔说的循环不变量是什么意思。 我的固定思路就是,target比中间值大,左指 ......
随想录 训练营 随想 算法 LeetCode

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

LeetCode704.二分查找 二分查找是一种基础的算法,其核心思想在高中数学中就已经被大家所熟知了,然而对于代码的实现,其细节问题常常令人头疼,比如while循环的条件是什么?middle是该+1还是-1?这些问题需要有一个清晰的认知。 题目链接如下:704.二分查找 Carl的讲解链接:二分查 ......
随想录 训练营 随想 算法 元素

代码随想录Java代码实现

第一章 数组 704.二分查找 关键词:二分法、双指针、边界处理 思路是使用二分查找方法,用左右指针不断进行二分来缩小范围,以这个为主要的思路,处理一些小的细节: java中的除法是去尾除法。 设定退出条件,退出条件与mid给两个指针的赋值相关。在这里是采取的加减1的方法,所以判断条件是大于等于。如 ......
代码 随想录 随想 Java

代码随想录算法训练营第10天 | lc20、lc1047、lc150

(本合集全部为Go语言实现) 相关文章链接:20题解 1047题解 150题解 相关视频链接: Leetcode20 状态:秒了 实现过程中的难点:经典的栈应用 从题解中学到的一个写法 func isValid(s string) bool { if (len(s) & 1) == 1 { retu ......
随想录 训练营 随想 算法 lc

代码随想录算法训练营第9天 | lc232、lc225

(本合集全部为Go语言实现) 相关文章链接:232题解 225题解 相关视频链接: Leetcode232 状态:在go语音对于队列和栈的实现上稍微卡了一下 实现过程中的难点:对于进队和出队两块的思路想出来就好写了 个人写法 type MyQueue struct { inStack, outSta ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第8天 | lc28、lc459

(本合集全部为Go语言实现) 相关文章链接:28题解 459题解 相关视频链接: Leetcode28 状态:每次看都有新体验,稍微耗了些时间复习了一下 实现过程中的难点:主要还是KMP算法,对于这种经典的算法,能理解代码含义当然是一方面,自我感觉还是得稍微一点时间在看懂一套实现之后稍微背一下代码, ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第7天 | lc344、lc541、卡码54、lc151、卡码55

(本合集全部为Go语言实现) 相关文章链接:344题解 541题解 卡码54题解 151题解 卡码55题解 相关视频链接: Leetcode344 状态:秒了 实现过程中的难点:对撞双指针 个人写法 func reverseString(s []byte) { for i, j := 0, len( ......
随想录 训练营 随想 算法 lc

代码随想录算法训练营第6天 | lc454、lc383、lc15、lc18

(本合集全部为Go语言实现) 相关文章链接:454题解 383题解 15题解 18题解 相关视频链接: Leetcode454 状态:秒了 实现过程中的难点:思想就是利用哈希表将部分和记录下来,最终实现将n ^ 4转换为2 * n ^ 2 个人写法 func fourSumCount(nums1 [ ......
随想录 训练营 lc 随想 算法

day8、9字符串代码随想录

第四章 字符串 ● 344.反转字符串 ● 541. 反转字符串II ● 卡码网:54.替换数字 ● 151.翻转字符串里的单词 ● 卡码网:55.右旋转字符串 1 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的 ......
随想录 字符串 随想 字符 代码

代码随想录算法训练营第七天| 344.反转字符串 541. 反转字符串II

LeetCode 344.反转字符串 题目链接: LeetCode344 思路: 定义left、right指针,将两指针对应的值反转即可 class Solution { public: void reverseString(vector<char>& s) { int n = s.size(); ......
字符串 字符 随想录 训练营 随想

代码随想录算法训练营第六天| 454.四数相加 15.三数之和 18.四数之和

LeetCode 454.四数相加 题目链接: LeetCode454 思路: 将两个数组中的数存放到一个map中,用另外两个数组的值在map中去减 class Solution { public: int fourSumCount(vector<int>& A, vector<int>& B, v ......
之和 随想录 训练营 随想 算法

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

LeetCode 242.有效的字母异位词 题目链接: LeetCode242 思路: 使用C++自带的库函数,经过排序后进行比较(使用库函数) class Solution { public: bool isAnagram(string s, string t) { if(s.length() ! ......
随想录 之和 训练营 数组 交集

day5代码随想录

哈希表理论基础;242.有效的字母异位词349. 两个数组的交集202. 快乐数1. 两数之和 来源:代码随想录 (programmercarl.com) ​ 6.2 哈希冲突 - Hello 算法 (hello-algo.com) 1哈希表理论基础 又称散列表 一般哈希表都是用来快速判断一个元素是 ......
随想录 随想 代码 day5 day

代码随想录算法训练营第5天 | lc242、lc349、lc202、lc1

(本合集全部为Go语言实现) 相关文章链接:242题解 349 202题解 1题解 相关视频链接: Leetcode242 状态:秒了 实现过程中的难点:对于元素固定是小写字母或类似的情况,可以使用数组,因为元素最大数量是固定的 个人写法 func isAnagram(s string, t str ......
随想录 训练营 lc 随想 算法

代码随想录算法训练营第4天 | leetcode24、leetcode19、leetcode面试题02

(本合集全部为Go语言实现) 相关文章链接:24题解 19题解 02.07题解 142题解 相关视频链接: Leetcode24 状态:秒了 实现过程中的难点:对组内两个节点的指针指向流转需要倒腾明白。临时头结点真的很有用 个人写法 func swapPairs(head *ListNode) *L ......
leetcode 随想录 训练营 随想 算法

代码随想录算法训练营第3天 | leetcode203、leetcode707、leetcode206

(本合集全部为Go语言实现) 相关文章链接:203题解 707题解 206题解 相关视频链接: Leetcode203 状态:秒了 实现过程中的难点:链表遍历一定要记得指针后移。另外,在头指针前加入一个新的临时头节点可以统一整个遍历过程,否则需要先确定初始时两指针的状态 个人写法 /** * Def ......
leetcode 随想录 训练营 随想 算法

代码随想录算法训练营第2天 | leetcode977、leetcode209、leetcode59

(本合集全部为Go语言实现) 相关文章链接:977题解 209题解 59题解 相关视频链接:977视频 209视频 59视频 Leetcode977 状态:按自定义排序策略的方式秒了。尝试使用双指针法,但是以为是需要原地进行操作,试了一下失败了 实现过程中的难点:需要明确的是对撞指针两者的平法比较时 ......
leetcode 随想录 训练营 随想 算法

代码随想录算法训练营第四天 | 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 142.环形链表II

LeetCode 24. 两两交换链表中的节点 题目链接: LeetCode 24 思路: 交换结点前将cur后第一个结点和第三个结点进行保存,然后修改cur指向头节点后再修改头节点后的结点 class Solution { public: ListNode* swapPairs(ListNode* ......
节点 随想录 环形 训练营 随想

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

LeetCode 203.移除链表元素 视频链接: LeetCode203 思路: 根据链表的性质,将目标值对应的节点保存在一个临时节点中,再重新设置cur下一个节点,再将临时节点进行删除 class Solution { public: ListNode* removeElements(ListN ......
随想录 训练营 随想 算法 元素

代码随想录day4链表2

day4 24. 两两交换链表中的节点19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II 总结 资料来源:代码随想录 (programmercarl.com) 5.两两交换链表中的节点 class Solution { private: /* data */ pub ......
随想录 随想 代码 day4 day

代码随想录day3链表1

链表理论基础203.移除链表元素707.设计链表206.反转链表 资料来源:代码随想录 (programmercarl.com) 1 链表理论基础 定义:是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null ......
随想录 随想 代码 day3 day

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

LeetCode 977.有序数组的平方 视频连接: LeetCode 977 思路: 利用双指针,通过首指针和尾指针的平方值比较,大的那个装入新的vector数组中,然后再更新指针。 class Solution { public: vector<int> sortedSquares(vector ......
数组 随想录 训练营 矩阵 螺旋

代码随想录day3链表开始

链表理论基础; 资料来源:代码随想录 (programmercarl.com) 1 链表理论基础 定义:是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。 1.1链表类型 单链表 双链表 ......
随想录 随想 代码 day3 day

代码随想录day2

977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结 1有序数组的平方 ​ 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 2 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该 ......
随想录 随想 代码 day2 day

代码随想录算法训练营第一天 | ( Part 1 ) 704. 二分查找

代码随想录算法训练营第一天 | ( Part 1 ) 704. 二分查找 704. 二分查找 题目链接:https://leetcode.cn/problems/binary-search/ 文档链接:https://programmercarl.com/0704.%E4%BA%8C%E5%88%8 ......
随想录 训练营 随想 算法 代码

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

LeetCode 704 二分查找 题目链接 : LeetCode704 左闭右闭: 视频讲解: 手把手带你撕出正确的二分法 思路: 在循环条件中注明left<=right,即[left,right] class Solution { public: int search(vector<int>& ......
随想录 训练营 随想 算法 元素

代码随想录-哈希

242.有效的字母异位词 https://leetcode.cn/problems/valid-anagram/description/ class Solution { public: bool isAnagram(string s, string t) { if(s.size()!=t.size ......
随想录 随想 代码

代码随想录-链表

203.移除链表元素 https://leetcode.cn/problems/remove-linked-list-elements/description/ /** * Definition for singly-linked list. * struct ListNode { * int va ......
随想录 随想 代码

代码随想录-数组

704.二分查找 https://leetcode.cn/problems/binary-search/description/ class Solution { public: int search(vector<int>& nums, int target) { int left = 0; in ......
随想录 数组 随想 代码

代码随想录算法训练营第十一天 | ● 20. 有效的括号 ● 1047. 删除字符串中的所有相邻重复项 ● 150. 逆波兰表达式求值

今日学习的内容 ● 20. 有效的括号 var isValid = function(s) { let stack = [] ; for(let i = 0 ;i < s.length ; i++){ let temp = s[i]; if(temp == '('){ stack.push(')') ......