C++数据结构与算法——哈希表

文章目录 一、有效的字母异位词(力扣242)二、两个数组的交集(力扣349)三、快乐数(力扣202)四、两数之和(力扣1)五、四数相加 II(力扣454)六、赎金信(力扣383)七、三数之和(力扣15)八、四数之和(力扣18) 一、有效的字母异位词(力扣242) class Solution {public: bool isAnagram(string s, string t) { // 创建哈希数组 in...

数据结构与算法】6.栈

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点,相互学习进步! 文章目录 1. 栈1.1 栈的概念1.2 栈的使用 2. 栈的模拟实现栈的定义入栈(push操作)出栈(pop操作)查看栈顶元素(peek操作)判断栈是否为空 3. 完整代码 1. 栈 1.1 栈的概念 栈:一种特殊的线性表,其*...

数据结构与算法】(1)初识算法之什么是算法?什么是数据结构?二分查找代码示例

这里写自定义目录标题 一. 初识算法1.1 什么是算法?1.2 什么是数据结构?1.3 二分查找 [^3]1) 基础版2) 改变版 1.4 衡量算法好坏1.5 再看二分查找1) 平衡版2) Java 版3) Leftmost 与 Rightmost 一. 初识算法 1.1 什么是算法? 定义 在数学和计算机科学领域,算法是一系列有限的严谨指令,通常用于解决一类特定问题或执行计算 Introduction to...

数据结构与算法】1.时间复杂度和空间复杂度

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点,相互学习进步! 文章目录 时间和空间复杂度1. 算法效率2. 时间复杂度2.1 时间复杂度的概念2.2 大O渐进表示法2.3 推导大O阶方法2.4 常见的时间复杂度 3. 空间复杂度 时间和空间复杂度 1. 算法效率 算法效率分为两种:第一种是时...

数据结构与算法教程,数据结构C语言版教程!(第五部分、数组和广义表详解)三

 第五部分、数组和广义表详解 数组和广义表,都用于存储逻辑关系为“一对一”的数据。 数组存储结构,99% 的编程语言都包含的存储结构,用于存储不可再分的单一数据;而广义表不同,它还可以存储子广义表。 本章重点从矩阵的角度讨论二维数组的存储,同时讲解广义表的存储结构以及有关其广度和深度的算法实现。 五、行逻辑链接的顺序表(压缩存储稀疏矩阵)详解 前面学习了如何使用三元组顺序表存储稀疏矩阵,其实现过程就是将矩阵中各...

数据结构与算法之美学习笔记:16 | 二分查找(下):如何快速定位IP对应的省份地址?

目录 前言二分查找的变形问题变体一:查找第一个值等于给定值的元素变体二:查找最后一个值等于给定值的元素变体三:查找第一个大于等于给定值的元素变体四:查找最后一个小于等于给定值的元素 解答开篇内容小结 前言 本节课程思维导图: 抛出问题:假设我们有 12 万条这样的 IP 区间与归属地的对应关系,如何快速定位出一个 IP 地址的归属地呢? 二分查找的变形问题 二分查找的变形问题很多,我只选择几个典型的来讲解,其...

数组【数据结构与算法

什么是线性表?什么是非线性表?什么是数组?数组如何实现根据下标随机访问数组元素?为什么数组从下标0开始,不从下标1开始? 什么是线性表? 数据结构元素只有前后关系。 线性表包括:数组、链表、栈、队列。 TODO 什么是非线性表? 数据结构元素不只有前后关系。 什么是数组? 线性表。 内存连续。 元素类型相同。 数组如何实现根据下标随机访问数组元素? 为什么数组从下标0开始,不从下标1开始?...

【LeetCode刷题(数据结构与算法)】:二叉搜索树的范围和

一、什么是二叉搜索树 二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树 二叉搜索树:一棵二叉树,可以为空;如果不为空,满足以下性质 非空左子树的所有键值小于其根结点的键值 非空右子树的所有键值大于其根结点的键值 左、右子树都是二叉搜索树 上图值为10的结点的右子树为7,比10小,不满足条件2,所以这棵树不是二叉搜索树 上图各个结点都满足条件,所以这棵树是二叉搜索树 上图各...

【LeetCode刷题(数据结构与算法)】:二叉树的最大深度

给定一个二叉树 root ,返回其最大深度 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数 输入:root = [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root = [1,null,2] 输出:2 而左子树和右子树的最大深度又可以以同样的方式进行计算。因此我们可以用「深度优先搜索」的方法来计算二叉树的最大深度。具体而言,在计算当前二叉树的最大深度时,可以...

【LeetCode刷题(数据结构与算法)】:合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的 **思路:定义一个头尾指针置为NULL while循环依次比较两个链表的值的大小 遍历链表 比较完数值大小过后连接到tail的尾部 然后各自的链表的节点的next指针指向下一个结点的地址 /** * Definition for singly-linked list. * struct ListNode { * i...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.006693(s)
2024-04-26 17:45:32 1714124732