CUR
  • 2024-09-16匿名内部类
     Java匿名内部类是一种特殊的内部类,它没有类名,直接在创建对象时定义并实现。通常用于创建只需要使用一次的类对象,可以简化代码,提高代码的可读性和可维护性。原本我们需要创建子类或实现类,去继承父类或实现接口,才能重写其中的方法。但是有时候我们这样做了,然而子类和实现类却只使用
  • 2024-09-15《 C++ 修炼全景指南:十 》自平衡的艺术:深入了解 AVL 树的核心原理与实现
    摘要本文深入探讨了AVL树(自平衡二叉搜索树)的概念、特点以及实现细节。我们首先介绍了AVL树的基本原理,并详细分析了其四种旋转操作,包括左旋、右旋、左右双旋和右左双旋,阐述了它们在保持树平衡中的重要作用。接着,本文从头到尾详细描述了AVL树的插入、删除和查找操作,配
  • 2024-09-15VP 【MX-S2】 解题报告
    VP【MX-S2】解题报告VPresult:比赛地址目录VP【MX-S2】解题报告【MX-S2-T1】变DescriptionConstraintsSolutionCode【MX-S2-T2】排DescriptionConstraintsSolutionSubtask2Subtask3FinalCode【MX-S2-T3】跳DescriptionConstraintsSolutionSubtask1Subtask2FinalCode
  • 2024-09-15Tarjan
    P3388【模板】割点(割顶)1、注意在遍历时要储存根节点编号,判断时需要特判根节点#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+10;intn,m,r;intdn,dfn[N],low[N],cnt,buc[N];vector<int>e[N];voiddfs(intid){ //标记时间戳 dfn[id]=low[id]
  • 2024-09-15二叉树的 Morris 中序遍历
    回顾问题陈述:给定一棵二叉树,实现中序遍历并返回包含其中序序列的数组例如给定下列二叉树:我们按照左、根、右的顺序递归遍历二叉树,得到以下遍历:最终中序遍历结果可以输出为:[3,1,9,2,4,7,5,8,6]MorristrickMorris中序遍历是一种树遍历算法,旨在实现O(1)的空间
  • 2024-09-15Day4||24.两两交换链表中的节点|19.删除链表的倒数第n个结点|面试题:链表相交|142.环形链表Ⅱ
    24.两两交换链表中的节点题目:24.两两交换链表中的节点-力扣(LeetCode)给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。图解思路首先,虚拟头结点挺方便链表进行增删改操作的。本题操作用到三
  • 2024-09-15南沙C++信奥老师解一本通题: 1361:产生数(Produce)
    ​ [题目描述】给出一个整数n(n≤2000)和k个变换规则(k≤15)。规则:①1个数字可以变换成另1个数字;②规则中,右边的数字不能为零。例如:n=234,k=2规则为2→53→6上面的整数234经过变换后可能产生出的整数为(包括原数)234,534,264,564共4种不同的产生数。求经过任意次的变换(0次
  • 2024-09-14【JavaScript】LeetCode:707设计链表
    文章目录题目内容题目分析(1)获取第n个节点的值(2)头部插入节点(3)尾部插入节点(4)第n个节点前插入节点(5)删除第n个节点完整代码题目内容题目分析添加哨兵节点dummy。在第n个节点前插入节点时,应该找到第n-1个节点(即前一个节点),才能完成插入操作。在删除第n
  • 2024-09-14数据结构与算法-求数的最小深度是多少?
    给定一颗二叉树的头节点head求以head为头的树中,最小深度是多少?publicclassMinHeight{publicstaticclassTreeNode{publicintval;publicTreeNodeleft;publicTreeNoderight;publicTreeNode(intx){val=x;
  • 2024-09-14《 C++ 修炼全景指南:九 》打破编程瓶颈!掌握二叉搜索树的高效实现与技巧
    摘要本文详细探讨了二叉搜索树(BinarySearchTree,BST)的核心概念和技术细节,包括插入、查找、删除、遍历等基本操作,并结合实际代码演示了如何实现这些功能。文章深入分析了二叉搜索树的性能优势及其时间复杂度,同时介绍了前驱、后继的查找方法等高级功能。通过自定义实现的
  • 2024-09-13双指针算法专题(1)
    找往期文章包括但不限于本期文章中不懂的知识点:个人主页:我要学编程(ಥ_ಥ)-CSDN博客所属专栏: 优选算法专题目录双指针算法的介绍 283.移动零1089.复写零202.快乐数11.盛最多水的容器双指针算法的介绍 在正式做题之前,得先了解:什么是双指针? 双指针一般是指
  • 2024-09-13Hash Table 哈希表工作原理介绍及C/C++/Python实现
    HashTable哈希表工作原理介绍及C/C++/Python实现哈希表(HashTable),也称为散列表,是一种通过哈希函数将键(Key)映射到表中一个位置以便快速访问记录的数据结构。它提供了非常高效的数据检索、插入和删除操作。哈希表的基本原理是使用一个哈希函数将输入(通常是字符串)转换为一个
  • 2024-09-12第十一章 图论 Part8
    目录单源最短路径算法dijkstra(朴素版)适用范围(权值不能为负数的单源最短路径)思路算法正确性拓扑排序思路心得单源最短路径算法dijkstra(朴素版)适用范围(权值不能为负数的单源最短路径)思路基本类似Prim算法,只是新加入(确定)点的时候,当前算法算的是距离源点的最短路径,而Prim算法算的
  • 2024-09-11Living-Dream 系列笔记 第78期
    常用dp状态:\(dp_i\)表示以\(i\)结尾的XXX/前\(i\)个元素的XXX。涉及的类型(由易到难):线性dp,背包,区间dp,树形dp(换根dp),状压dp,dp的各类优化(数据结构优化、斜率优化、四边形不等式优化......)。背包问题:01背包、完全背包、分组背包、多重背包、树上背包。P1455并查
  • 2024-09-11234. 回文链表
    题目链接234.回文链表思路链表综合题:快慢指针+指针翻转题解链接官方题解关键点whilefast.nextandfast.next.next:...时间复杂度\(O(n)\)空间复杂度\(O(1)\)代码实现:classSolution:defisPalindrome(self,head:Optional[ListNode])
  • 2024-09-11使用python进行PostgreSQL 数据库连接
    使用python进行PostgreSQL数据库连接PostgreSQL数据库是最常用的关系型数据库之一,最吸引人的一点是它作为开源数据库且具有可拓展性,能够提供丰富的应用。运用python可以很简单的建立PostgreSQL数据库连接,其中最受欢迎的就是psycopg。1.安装psycopg2Psycopy是针对python的Po
  • 2024-09-10C++:使自定义类支持迭代器
    概述在C++中,链表迭代器是一种用来遍历链表(如std::list)元素的工具。链表是一种数据结构,其中每个元素(节点)包含一个数据值和一个指向下一个节点的指针。链表迭代器允许以类似于数组的方式访问链表中的元素,但不需要直接操作指针。链表迭代器的作用访问元素:链表迭代器使你能够
  • 2024-09-09【408DS算法题】039进阶-判断图中路径是否存在
    Index题目分析实现总结题目对于给定的图G,设计函数实现判断G中是否含有从start结点到stop结点的路径。分析实现对于图的路径的存在性判断,有两种做法:(本文的实现均基于邻接矩阵存储方式的图)1.图的BFSBFS的思路相对比较直观——从起始结点出发进行层次遍历,遍历过程
  • 2024-09-09oj刷题——双指针篇:双指针的原理和使用场景
    前言:双指针一般在做与数组有关的题是经常容易用到的,在很多场景下都能得到很好的应用,下面我将通过多个多指针的题(力扣上面的),来总结一下双指针的原理和使用场景需知:我在讲解一个题时主要分为三步:题意解析、讲解算法原理和编写代码目录一.复写0二、快乐数三、盛最多水的
  • 2024-09-09贪吃蛇项目实现(C语言)——附源码
    前言贪吃蛇是一款十分经典的游戏,其通过控制贪吃蛇的上下左右移动来吃食物,延长自己的身体,也会因为撞到墙体和自身而死亡。下面我们通过C语言来实现贪吃蛇。1.技术要点C语言枚举,结构体,链表,动态内存管理,预处理指令,函数,Win32API等。2.Win32API 要使用Win32API我们就需
  • 2024-09-09C++: set与map容器的介绍与使用
    本文索引前言1.二叉搜索树1.1概念1.2二叉搜索树操作1.2.1查找与插入1.2.2删除1.2.3二叉搜索树实现代码2.树形结构的关联式容器2.1set的介绍与使用2.1.1set的构造函数2.1.2set的迭代器2.1.3set的容量2.1.4set的修改操作2.2map的介绍与使用2.2.1map的构造
  • 2024-09-09[LeetCode] 2181. Merge Nodes in Between Zeros
    Youaregiventheheadofalinkedlist,whichcontainsaseriesofintegersseparatedby0's.ThebeginningandendofthelinkedlistwillhaveNode.val==0.Foreverytwoconsecutive0's,mergeallthenodeslyinginbetweenthemintoasing
  • 2024-09-08【408DS算法题】038进阶-图深度优先遍历DFS
    Index题目分析实现总结题目设计函数实现对图的深度优先遍历。分析实现类似于图的BFS的分析思路,图的DFS和二叉树的DFS思路相同,但需要额外考虑结点是否已经被访问过。此处同样用布尔数组visited来记录每个结点的访问情况,对于邻接矩阵存储方式的图的DFS,依照先序遍
  • 2024-09-08C++笔记19•数据结构:红黑树(RBTree)•
    红黑树1.简介:    红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。当搜索二叉树退化为单支树时,搜
  • 2024-09-08Day03 链表part01| LeetCode 203. 移除链表元素,707. 设计链表,206. 反转链表
    链表理论基础链表一种通过指针串联在一起的线性结构数据域指针域(存放指向下一个节点的指针,最后一个节点的指针域指向NULL)入口节点——head头节点链表类型单链表双链表两个指针域一个指向下一个节点一个指向上一个节点循环链表首尾相连约瑟夫环问题