
算法
算法
陈汉升
这个作者很懒,什么都没留下…
展开
-
leetcode刷题 缺失的数字
/* 给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。 */ #include<iostream> #include<vector> #include<algorithm> #include<ctime> #include<map> using namespace std; //方法1 排序+一次遍历 void test1(vector<int>v) { clock_原创 2020-09-24 20:53:49 · 199 阅读 · 1 评论 -
判断链表中是否有环并返回环的入口结点 c++实现
一、判断一个链表中是否有环,如果有环,返回环的最初节点。 例如: 输入: 输出:2 实现思想是先定义一个特定节点值的节点,依次断开节点与下一节点的连接,并将下一节点的指针指向该特定节点,如果存在环则必定会访问到这个特定的节点,否则指针为·NULL则遍历结束,不存在环。 具体代码如下: ListNode *detectCycle(ListNode *head) { if(head==NULL) return head; ListNode* l原创 2020-09-02 19:44:30 · 423 阅读 · 1 评论 -
二叉树的遍历 非递归实现 栈 c++
一、对于一棵二叉树的而言,最普遍的操作就是进行遍历,遍历又分先序遍历,中序遍历,后序遍历,层序遍历。本次博客主要是针对前面三种遍历方式,一般的方法就是采用递归,即逐个根节点进行递归操作,那么如何采用非递归进行遍历呢,这里就需要借助于栈这种数据结构。 二、下面以具体的题目及代码进行讲解(题目是leetcode在线编程) 1. 2. 3. ...原创 2020-08-22 19:28:22 · 391 阅读 · 0 评论 -
并查集的实现以及优化(c++)
一、并查集 Union Find 1.不一样的树形结构 2.主要解决连接问题 Connectvity Problem 2.1 网络中结点间的连接状态 网络是个抽象概念,用户之间形成的网络 2.2 数学类中的集合类实现 2.3 比路径问题要回答的问题少,连接问题只用判断是否相连,路径问题还要求出路径 3. 对于一组数据,主要支持两个动作 3.1 union(p,q) 两个元素合并连接 3.2 find§ 4.用来回答一个问题 4.1 isConnected(p,q) 是否连接 5. 并查集的基本数据表示原创 2020-08-17 16:43:57 · 298 阅读 · 0 评论