双指针常⻅的双指针有两种形式,⼀种是对撞指针,⼀种是左右指针。对撞指针:⼀般⽤于顺序结构中,也称左右指针。•对撞指针从两端向中间移动。⼀个指针从最左端开始,另⼀个从最右端开始,然后逐渐往中间逼近。•对撞指针的终⽌条件⼀般是两个指针相遇或者错开(也可能在循环内部找到结果直接跳出循环),也就是:◦left==right(两个指针指向同⼀个位置)◦left>right(两个指针错开)快慢指针:⼜称为⻳兔赛跑算法,其基本思想就是使⽤两个移动速度不同的指针在数组或链表等序列结构上移动。这种⽅法对于处理环形链表或数组⾮常有⽤。其实不单单是环形链表或者是数组,如果我们要研究的问题出现循环往复的情况时,均可考
最近在扫盲测序的一些知识其中需要安装一些软件进行练习,如质控的fastqc,然后需要用conda来配置环境变量和安装软件。记录一下方便后续查阅学习1.安装miniconda由于我的电脑之前已经安装了brew,所以我就直接用brew安装了brewinstallminiconda安装完成之后会有successful的提示2.查看miniconda是否安装成功conda-V检测是否安装成,如果成功会出现版本信息如果出现commandnotfound之类的命令,那么需要配置环境变量解决方法:(1)vim~/.zshrc进入环境变量配置文件(本人使用的sh是zsh)(2).zshrc中添加exportP
模板初阶前言:泛型编程一、函数模板(一)函数模板概念(二)函数模板格式(三)函数模板的原理(四)函数模板的实例化(五)模板参数的匹配原则三、类模板(一)类模板的定义格式(二)类模板的实例化前言:泛型编程如何实现一个通用的交换函数呢?voidSwap(int&left,int&right){inttemp=left;left=right;right=temp;}voidSwap(double&left,double&right){doubletemp=left;left=right;right=temp;}voidSwap(char&left,char&right){chartemp=left;
基本概念和术语讲到了数据结构是什么,我们就得先知道什么叫做数据。数据 数据,《大话数据结构》这本书中,给出的定义:是描述客观事物的符号,是计算机中可以操作的对象,是能够被计算机识别,并输入给计算机处理的符号集合。 数据不仅仅包括整型,实型等数值类型,还包括字符及声音,图像,视频等非数值类型。数据结构与数据库的区别首先,我们先要区别开两个概念,这两个概念分别是什么呢?分别是数据结构和数据库。这两个都是对数据进行管理,但他们的区别呢:数据结构是在内存中管理数据,而数据库呢是在磁盘中管理数据。两个管理数据分别有着各自的好处:数据结构呢是速度快,但是需要带电存储。而数据库呢是在磁盘中管理数据,相对于数
学习目标了解qt的基本信息了解qt的下载及安装了解创建一个基本qt项目的流程了解信号与槽通过示例了解信号与槽的设置与编写了解控件添加的方式了解控件如何使用代码获取其文本了解控件如何使用代码设置其文本使用connect自定义信号与槽了解使用样式修饰控件外观了解使用代码清空控件文本学习使用Qt编写一个四则算术计算器注:本章中使用的一些方法方法是为了简单的了解一下概念性质,例如在多个槽函数时使用的方法并不是简便的,简便的方法在之后的学习中将会进行讲解。一、简单了解Qt及下载安装1.1简单了解Qtqt是C++的图形用户工具,是一个跨平台的用户界面解决方案;Qt几乎支持所有的系统平台,并且是面向对象的。
图异常检测初接触Elliptic数据集综述静态图的异常检测动态图的异常检测图注意力网络-Graphattentionnetworks(GAT)Elliptic数据集Elliptic数据集是从真实的比特币交易网络中获得的,这是真实的比特币交易数据。数据集被构建为一个图,由表示比特币交易的节点和表示交易流的边组成。椭圆数据集是比特币交易图的子图,由203769个节点和234355条表示节点之间交易的边组成。节点分为三类,即合法、非法和未知。合法类别包括交易所、矿工、钱包提供商、金融服务提供商等。非法类别包括欺诈、恶意软件、恐怖组织、洗钱、勒索软件、庞氏骗局等。不属于前两类的节点被标记为未知。节点和
栈和队列1.栈1.1栈的概念和结构1.2栈的实现2.队列2.1队列的概念和结构2.2队列的实现1.栈1.1栈的概念和结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(LastInFirstOut)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。1.2栈的实现栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小Stack.h#include#include#include#inc
泛型编程如下的交换函数中,它们只有类型的不同,应该怎么实现一个通用的交换函数呢?voidSwap(int&left,int&right){inttemp=left;left=right;right=temp;}voidSwap(double&left,double&right){doubletemp=left;left=right;right=temp;}voidSwap(char&left,char&right){chartemp=left;left=right;right=temp;}使用函数重载虽然可以实现,但是有一下几个不好的地方: 1.重载的函数仅仅是类型不同,代码复用
双链表1.双链表的实现1.1结口实现1.2申请结点1.3初始化双链表1.4打印双链表1.5尾插1.6尾删1.7头插1.8头删1.9计算大小1.10查找1.11pos位置插入1.12删除pos位置1.12删除双链表全部码源1.双链表的实现1.1结口实现#include#include#includetypedefintLTDateType;typedefstructListNode{ structListNode*next; structListNode*prev; LTDateTypedate;}LTNode;//创造结点LTNode*BuyLTNode(LTDateTypex);//初始化双
一.算数操作符:+ - * / %+、-、*、/这四个运算符均可用于整数及浮点数的运算。当使用/运算符时,如果两个操作数均为整型,那么执行整数除法,运算结果也为整型;如果两个操作数至少一个为浮点数,那么执行浮点数运算,运算结果为浮点型。%运算符只能用于两个整数相除,返回余数。二.位移操作符:>注:位移操作符的操作数只能是整数左移操作符(:不论算术移位还是逻辑移位,均将左边的数舍弃,右边空缺位补0(左边丢弃,右边补0)右移操作符(>>):当进行逻辑移位时,右边位丢弃,左边空缺位补0(右边丢弃,左边补0); 当进行算术移位时,右边位丢弃,左边位补原数的符号位(右边丢弃,左边