代码编织梦想

力扣刷题记录&整理——(六)linked list-爱代码爱编程

文章目录 前言一、预备知识1.链表链表的基本思想单链表的定义链表的优点链表的类型 二、解题思路1.迭代206.reverse-linked-list25.reverse-nodes-in-k-gr

算法刷题——滑动窗口的最大值(力扣)_编写函数计算滑动窗口最大值-爱代码爱编程

文章目录 题目描述我的解法思路结果分析 官方题解优先队列法(堆)思路分析 单调队列法思路分析 查漏补缺c++中的优先队列(堆)c++中的emplace函数 更新日期参考来源

训练营day7|454.四数相加ii、383. 赎金信、15. 三数之和、18. 四数之和-爱代码爱编程

454.四数相加II 题目链接:454.四数相加II独立思路:❌ 没想出来(四层循环。。。)题解:首先求出 A 和 B 任意两数之和 sumAB,以 sumAB 为 key,sumAB 出现的次数为 value,存入 hashmap 中。然后计算 C 和 D 中任意两数之和的相反数 sumCD,在 hashmap 中查找是否存在 key 为 sumCD。

二分查找(力扣刷题总结)_二分查找适用范围-爱代码爱编程

目录 前言 一、二分查找是什么? 二、二分查找的不同写法 例题: 二分法第一种写法(闭区间) 二分法第二种写法(左闭右开区间) 二分法第三种写法(开区间) 对于要求左边界和右边界的题目: 寻找右边界(闭区间) 寻找右边界(左闭右开区间) 寻找右区间(开区间) 寻找左边界(闭区间) 寻找左边界(左闭右开区间) 寻找左区间(开区间)

【每日一题】环形链表Ⅱ-爱代码爱编程

🌟个人博客:www.hellocode.top🌟 ⭐所有文章均在上方博客首发,其他平台同步更新 🔥本文专栏:《每日一题》 ⚡如有问题,欢迎指正,一起学习~~ 文章部分参考《代码随想录》,如有侵权,请联系删除~~

刷题 -爱代码爱编程

文章目录 1.合并两个有序链表2.删除链表种重复的元素3.环形链表4.相交链表5.移除链表元素6. 反转链表7.回文链表8.链表的中间节点9. 二进制链表转整数10.图书管理11. 删除链表中的节点12.训练计

力扣日常刷题——(142环形链表Ⅱ、138复制带随机指针的链表)-爱代码爱编程

142.环形链表Ⅱ 题目:142. 环形链表 II - 力扣(LeetCode) ①解决思路 方法1:使用快慢指针先使慢指针追到快指针,之后分别使两指针从起始点和相遇点开始向后移动,最终会在入环点相遇(推导如下) ②

java\leetcode刷题-爱代码爱编程

Java链表专题 **引言:**数组和链表都是线性表,数组在物理结构上进行顺序存储、链表在逻辑结构上进行顺序存储。面对数据量固定,频繁访问其中元素的需求,通常使用数组;面对数据量不固定,频繁进行插入和删除的需求,通常使用链

【map】【滑动窗口】【优先队列】leetcode480滑动窗口中位数_滑动窗口算法优先队列-爱代码爱编程

作者推荐 动态规划 多源路径 字典树 LeetCode2977:转换字符串的最小成本 本文涉及的基础知识点 C++算法:滑动窗口总结 map 优先队列 题目 中位数是有序序列最中间的那个数。如果序列的长度是偶数,则

代码随想录算法训练营第12天 |150. 逆波兰表达式求值239. 滑动窗口最大值347.前 k 个高频元素串-爱代码爱编程

150. 逆波兰表达式求值 150. 逆波兰表达式求值 - 力扣(LeetCode) 利用栈的特性,每次用top和第二个top计算,结果为新top class Solution { public: int evalRPN(vector<string>& tokens) { stac

算法训练day07 | 454. 四数相加 ii、383. 赎金信、15. 三数之和、18. 四数之和-爱代码爱编程

算法训练Day07 | 454. 四数相加 II、383. 赎金信、15. 三数之和、18. 四数之和 454. 四数相加 II383. 赎金信15. 三数之和18. 四数之和 我新建的个人博客

代码随想录算法训练营第四天|24. 两两交换链表中的节点、19.删除链表的倒数第n个节点 、面试题 02.07. 链表相交 、142.环形链表ii-爱代码爱编程

24. 两两交换链表中的节点 题目链接:24. 两两交换链表中的节点         先看的卡哥视频再自己动手做的,自己做跟听还是不一样的,编程学习是需要动手的!     ᕦ(・ㅂ・)ᕤ 遇到的问题: 没搞清第一个临时节点和第二个临时节点的赋值时间  对临时节点temp0和temp1的理解:         必须一开始在循环中就把te

代码随想录dat3|链表|203移除链表元素、707设计链表、206反转链表-爱代码爱编程

文章目录 前言零、链表操作指南1.判断不为空指针2.对于循环遍历3.释放链表元素4.创建新节点5.初始化链表6.输出链表7.定义链表节点8.链表操作技巧 一、203移除链表元素1. 题目2. 思路3. 代

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

203.移除链表元素   题目链接: 看到题目的第一想法:了解链表的结构与特点以及与数组相比较的优缺点,但是不熟悉c++中对链表的操作方式,所以这个题是先学习视频,然后按照给的代码手敲了一遍来熟悉理解对链表的操作方式 看完代码随想录之后的想法:主要就是掌握链表的一些操作方法,如何构建虚拟头节点便于统一操作链表的方式,c++中需要主动释

备战蓝桥杯————二分搜索(一)_二分查找 边界-爱代码爱编程

引言 一、二分查找 基本概念 代码框架 二、二分查找 题目描述 解题思路及代码 结果展示 三、寻找左侧边界的二分搜索 使用背景  基本代码 引言         在计算机科学的世界里,二分查找算法无疑是一种经典且强大的工具。它以其高效的性能,在有序数据集中快速定位元素,成为了算法库中不可或缺的一部分。然而,二分查找的应用场

leetcode142-爱代码爱编程

LeetCode142-环形链表Ⅱ 题目分析: 在这道题中链表就只有两种情况:有环或者无环,无环的话还是很好解决的,只要遍历到末尾链表指向空就行了,但是有环的话这就不可取了,这样会陷入死循环,若考虑双指针暴力的方法好

链表-爱代码爱编程

142(中等)环形链表Ⅱ   给定一个链表的头节点 head,返回链表开始入环的第一个节点,如果链表无环,则返回 null。 输入:head = [3, 2, 0, -4], pos = 1 输出:返回索引为 1

【leetcode题解c++】150.逆波兰表达式求值 and 239.滑动窗口最大值 and 347.前k个高频元素-爱代码爱编程

150.逆波兰表达式求值 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 '+'、'-'、'*' 和 '/' 。每个操作数(运算对象)都可以是一个整数或者另一个表达式。两个整数之间的除法总是 向零截断 。表达式中不含除零运算。输入是一个根据逆波

10. 150. 逆波兰表达式求值 , 239. 滑动窗口最大值, 347.前 k 个高频元素-爱代码爱编程

class Solution { public: int evalRPN(vector<string>& tokens) { stack<int> sta; for(string s : tokens){ if(s == "+" || s == "-" ||

代码随想录训练营第十二天|150. 逆波兰表达式求值|239. 滑动窗口最大值|347.前 k 个高频元素-爱代码爱编程

150. 逆波兰表达式求值 困难: 怎么处理遇到的字符串默认为int这种 atoi stol stoll 函数可以直接调用 二叉树的后序遍历 long long class Solution { public: int evalRPN(vector<string>& tokens) { stack&l