草庐IT

约瑟夫问题

这篇博客是我在B站看韩顺平老师的数据结构和算法的约瑟夫问题后的学习笔记,记录一下,防止忘记,也希望能帮到各位小伙伴。问题引入:设编号为1,2,…n的n个人围坐一圈,约定编号为k(1提示:用一个不带头结点的循环链表来处理Josephu问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个结点从链表中删除算法结束。首先,创建一个小孩类,代码如下://创建一个Boy类,表示一个节点classBoy{ privateintno;//编号 privateBoynext;//指向下一个节点,默认null

<三>使用类模板实现STL Vector

使用类模板简单实现STLVector#includeusingnamespacestd;templateclassMyVector{public://构造函数MyVector(intsize=10){ T*_tep=newT[size](); first=_tep; last=_tep; end=first+size;// cout(constMyVector&_src){ //对方vector是为空 if(_src.Empty()){ intsrcVectorySize=_src.getVectorSize(); T*_tep=newT[srcVectorySize](); firs

<三>使用类模板实现STL Vector

使用类模板简单实现STLVector#includeusingnamespacestd;templateclassMyVector{public://构造函数MyVector(intsize=10){ T*_tep=newT[size](); first=_tep; last=_tep; end=first+size;// cout(constMyVector&_src){ //对方vector是为空 if(_src.Empty()){ intsrcVectorySize=_src.getVectorSize(); T*_tep=newT[srcVectorySize](); firs

SQL FIRST() 函数

SQLFIRST()函数FIRST()函数FIRST()函数返回指定的列中第一个记录的值。SQLFIRST()语法SELECTFIRST(column_name)FROMtable_name;注释:只有MSAccess支持FIRST()函数。SQLServer、MySQL和Oracle中的SQLFIRST()工作区SQLServer语法SELECTTOP1column_nameFROMtable_nameORDERBYcolumn_nameASC;实例 SELECTTOP1nameFROMWebsitesORDERBYidASC;MySQL语法 SELECTcolumn_nameFROMtab

SQL FIRST() 函数

SQLFIRST()函数FIRST()函数FIRST()函数返回指定的列中第一个记录的值。SQLFIRST()语法SELECTFIRST(column_name)FROMtable_name;注释:只有MSAccess支持FIRST()函数。SQLServer、MySQL和Oracle中的SQLFIRST()工作区SQLServer语法SELECTTOP1column_nameFROMtable_nameORDERBYcolumn_nameASC;实例 SELECTTOP1nameFROMWebsitesORDERBYidASC;MySQL语法 SELECTcolumn_nameFROMtab

<四>理解空间配置器allocator, 优化STL 中的Vector

.在上一节我们实现的MyVector存在哪些问题?问题1现在有Student类classStudent{public:Student(){coutv1[1000];我只是希望创建一个能放1000个Student的Vector,但是开始并不放任何内容,但是发现编译器除分配了1000个student对象的空间,还创建了1000个对象,在main函数结束后再析构这1000个对象,这就是问题1,这1000个对象并不是我需要的,原因如下,在MyVector的构造函数中T*_tep=newT[size]();这个new除了分配空间,还会调用对象的构造函数完成对象的初始化换句话说就是空间的分配和对象的创建联

<四>理解空间配置器allocator, 优化STL 中的Vector

.在上一节我们实现的MyVector存在哪些问题?问题1现在有Student类classStudent{public:Student(){coutv1[1000];我只是希望创建一个能放1000个Student的Vector,但是开始并不放任何内容,但是发现编译器除分配了1000个student对象的空间,还创建了1000个对象,在main函数结束后再析构这1000个对象,这就是问题1,这1000个对象并不是我需要的,原因如下,在MyVector的构造函数中T*_tep=newT[size]();这个new除了分配空间,还会调用对象的构造函数完成对象的初始化换句话说就是空间的分配和对象的创建联

leetcode 34. Find First and Last Position of Element in Sorted Array 在排序数组中查找元素的第一个和最后一个位置(中等)

一、题目大意标签:查找https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回 [-1,-1]。进阶:你可以设计并实现时间复杂度为 O(logn) 的算法解决此问题吗?示例1:输入:nums=[5,7,7,8,8,10],target=8输出:[3,4]示例 2:输入:nums=[5,7,7,8,8,10],target=6输出:[-1

leetcode 34. Find First and Last Position of Element in Sorted Array 在排序数组中查找元素的第一个和最后一个位置(中等)

一、题目大意标签:查找https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回 [-1,-1]。进阶:你可以设计并实现时间复杂度为 O(logn) 的算法解决此问题吗?示例1:输入:nums=[5,7,7,8,8,10],target=8输出:[3,4]示例 2:输入:nums=[5,7,7,8,8,10],target=6输出:[-1

洛谷P3654 First Step题解

题目传送门这是一道暴力枚举。  大致题意:R行C列的棋盘要放下长度为K的线段,“#”表示无法放置,问有多少种放置方法。直接贴代码:#includeusingnamespacestd;intmain(){stringstr;//读取字符串intr,c,k,a[101][101],cnt=0;//数组a用来存储棋盘cin>>r>>c>>k;//r表示行,c表示列,k表示线段长度for(inti=1;i){cin>>str;//输入for(intj=1;j){if(str[j-1]=='.')//将棋盘字符转为数值表示是否可以放置a[i][j]=0;//0表示可以放置elsea[i][j]=1;//