![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode与算法
文章平均质量分 92
Yuleo_
*---------------------*
展开
-
算法进阶:双指针(一)c++leetcode例题
给一个排好序的链表,删除把链表中出现的所有的重复的项:这道题有很多种解法,我第一眼看到这题的时候,想到了 哈希表。利用哈希表来记录出现的重复的节点元素,接着在遍历链表,等到这个节点出现在了哈希表中,则while 循环一直跳过这个节点,直到跳到下一个不同的元素为止。哈希表的缺点:我们的哈希表的空间随着链表的增大而增大,空间复杂度达到了O(N)。我们知道用哈希表来记录出现次数大于一次的节点,那我们能不能直接用来记录呢?时间复杂度:O(N)只遍历链表一遍,空间复杂度:O(1)原创 2022-12-27 09:44:30 · 357 阅读 · 0 评论 -
C++ STL算法(一)利用STL算法解决很常见的一些子问题
常见的一些子问题,例如《全排序》 《前缀和》《二分查找》《排序去重》等等原创 2022-12-19 17:15:18 · 420 阅读 · 0 评论 -
动态规划:将题目转换为01背包问题
leetcode两题:474.一和零 494.目标和原创 2022-12-10 21:35:09 · 421 阅读 · 0 评论 -
回溯算法(1)组合
组合,电话号码的组合,组合总和原创 2022-12-08 21:15:45 · 583 阅读 · 0 评论 -
动态规划:01背包问题例题(leetcode+cpp实现)
416. 分割等和子集 1049. 最后一块石头的重量 II原创 2022-12-07 21:59:20 · 1106 阅读 · 0 评论 -
动态规划算法(4)01背包问题
依次把每一个物品放入背包中,然后依次计算它的最大值,不过这样的方法的时间复杂度将会非常高,所以我们使用动态规划的思想来解决这个问题,而动态规划的具体实现方法则是01背包问题。解决动态规划问题的五个步骤:首先我们以这道题为例:我们创建dp[i][j]二维数组,i 表示dp二维数组的行,表示物品的编号(从0开始);j 表示dp二维数组的列,表示背包容量为 j 时,所能装下的最大价值。原创 2022-12-06 21:17:25 · 2766 阅读 · 2 评论 -
动态规划算法(3)(不同方案数问题+拆分问题)
最多的不同路径数量,不同的二叉搜索树的数量,整数拆分原创 2022-12-04 20:46:56 · 640 阅读 · 0 评论 -
二叉树的中序遍历三种解法(递归+迭代+线索化)
给你一颗二叉树,让你实现中序的遍历。原创 2022-12-02 17:59:53 · 1181 阅读 · 0 评论 -
动态规划算法(2)最长回文子串详解
从零学习动态规划,第二部分:动态规划处理回文串等相关问题,leetcode例题+cpp实现原创 2022-11-30 12:42:36 · 2688 阅读 · 0 评论 -
单链表的递归详解 (leetcode习题+ C++实现)
链表的递归:合并两个有序链表,删除链表中的节点,链表翻转原创 2022-11-27 21:20:32 · 961 阅读 · 0 评论 -
单源广度优先搜索 (leetcode经典例题 C++实现)
单源广度优先搜索:求解最短路径或者最大路径的为题:01矩阵问题,腐烂的橘子,地图搜索问题原创 2022-11-26 21:53:00 · 931 阅读 · 0 评论 -
深度搜索dfs与广度搜索bfs算法总结(c++ 例题)
深度优先搜索,广度优先搜索原创 2022-11-23 21:37:57 · 516 阅读 · 0 评论 -
滑动窗口总结模板与例题(c++)
本篇主要总结关于滑动窗口的相关做题技巧与注意事项,有关滑动窗口是什么请参阅其他文章,本篇主要用于在了解滑动窗口的构造后,快速掌握滑动窗口的做题技巧与做题模板,便于以后复习参阅。原创 2022-11-21 23:46:30 · 2961 阅读 · 1 评论 -
二分查找的多种实现方式及本质解析(c++实现 + 例题)
三种方式的二分查找:闭区间二分,左闭右开二分, 开区间二分,二分查找的各种大于小于等关系的判定!! 任何关系都可以由>= 的关系表示 leetcode例题:34. 在排序数组中查找元素的第一个和最后一个位置解析原创 2022-11-20 19:56:23 · 2692 阅读 · 0 评论 -
C++ 哈希表的总结与例题
unordered_set基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是消耗比较多的内存,无自动排序功能。2、缺点:空间占用率高,因为map内部实现了红黑树,虽然提高了运行效率,但是因为每一个节点都需要额外保存父节点、孩子节点和红/黑性质,使得每一个节点都占用大量的空间。(2)红黑树,内部实现一个红黑树使得map的很多操作在lgn的时间复杂度下就可以实现,因此效率非常的高。set基于红黑树实现,红黑树具有自动排序的功能,因此set内部所有的数据,在任何时候,都是有序的。原创 2022-11-18 18:13:51 · 1153 阅读 · 0 评论 -
循环检测算法(哈希,双指针)
利用 哈希集和 统计计算的每一次的结果,如果陷入了循环,则哈希集合将显示为已经存在,因此此时就可以退出循环,即最后的结果为false;例如数字: 2147483648,把他每一位拆分计算后:它肯定就会变成一个三位的数字,因此它不可能无限大下去,它一定会有一个循环或者最后结果为1.这还不简单,当快指针等于慢指针得时候,定义一个临时得节点,然后让他走到快指针的位置,返回这个位置,不就是这个入口节点吗?大家仔细想一想,快慢指针的相遇不一定是在入口节点发生的,有可能在循环的圈内,因此返回快指针的位置是完全错误的。原创 2022-11-16 21:36:06 · 567 阅读 · 0 评论 -
四种质数筛选算法总结(c++)
枚举法,埃氏筛,线氏筛,利用奇数优化埃氏筛原创 2022-11-12 16:51:50 · 2856 阅读 · 0 评论