![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
我自是年少韶华倾负
我会成为一个有资格可以出现在你面前的人
展开
-
leetCode 刷题日记----最长公共前缀
以第一个为遍历基准,然后逐个循环strs数组中的值,如果两者不同,将第一个字符串截取到与当前相同的部分子串,然后接着循环,最后保存的就是公共的子串。编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串。原创 2022-11-26 19:38:36 · 529 阅读 · 0 评论 -
leetcode 刷题日记----罗马数字转整数
通常情况下,罗马数字中小的数字在大的数字的右边。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。字符大的在字符小的右边则需要减去字符小所对应的值,其余的情况就直接加上。I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。原创 2022-11-26 19:18:02 · 153 阅读 · 0 评论 -
leetcode刷题日记----回文数
描述:给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。原创 2022-11-26 18:49:50 · 204 阅读 · 0 评论 -
leetcode刷题日记---无重复字符的最长子串
给定一个字符串s,请你找出其中不含有重复字符的的长度。原创 2022-11-26 18:11:11 · 499 阅读 · 0 评论 -
leetCode 刷题日记----两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。原创 2022-11-26 17:38:24 · 176 阅读 · 0 评论 -
剑指offer-java--将空格替换为%20
题目描述:将一个字符串中的空格替换成“%20”。例如:当字符串为 We Are Happy.则经过替换之后的字符串为 We%20Are%20Happ代码实现:这里使用了string原创 2021-06-05 15:56:04 · 793 阅读 · 0 评论 -
K-means算法实现和apriori算法实现(课程小结)
运行界面大概:内容:实现了K-means算法和Apriori算法(由于时间关系,算法代码借鉴别人的),作为一个课程小结交了上去。原创 2019-12-27 08:46:17 · 697 阅读 · 0 评论 -
算法---两个超大整数相乘
处理问题时有时候会遇到两个超大数相乘,那么他们的乘积整数就有可能存不下。 说一下各个整型的范围 类型说明 名称 字节数 范围 int 4 -2147483648~2147483647 short int 2 -3276...原创 2019-04-05 11:26:33 · 4758 阅读 · 0 评论 -
算法--计算两个数的最大公约数
计算两个数的最大公约数。由于这两个算法很常见,小菜就不班门弄斧的介绍了一、普通整数求最大公约数一、辗转相除法int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b);}二、相减法int gcd(int x,int y) { while(x!=y) { ...原创 2019-04-05 11:44:22 · 514 阅读 · 0 评论 -
算法---大数取模
大数取模:a mod n原创 2019-04-05 11:49:09 · 4453 阅读 · 1 评论 -
算法----扩展的欧几里得算法
内容:就是有两个数A,B 能找到一组数(x,y)使得Ax+B*y=gcd(A,B)一、代码#include<iostream>#include<string>#include<stdio.h>#include<string.h>using namespace std;int exgcd(int a,int b,int &x...原创 2019-06-03 11:36:54 · 182 阅读 · 0 评论 -
列主高斯若当消元法来解矩阵
列主-高斯若当消元法解矩阵原创 2019-04-05 19:33:09 · 354 阅读 · 0 评论 -
改进平方根法解矩阵
改进平方根法求解矩阵原创 2019-04-05 19:35:41 · 1531 阅读 · 0 评论 -
C++指针与引用的区别(手写)
指针和引用都是在写程序的时候经常用到的。通过指针和引用我们可以通过传形参来灵活的改变相关的参数。比如做交换时void swapdata(int &a,int &b){int temp;temp=a;a=b;b=temp;}或者通过指针void swapdata(int *a,int *b){int temp;temp=*a;*a=*b;*b=t...原创 2019-04-16 10:00:58 · 425 阅读 · 0 评论 -
椭圆曲线的整数点加法的计算问题
一、椭圆曲线的定义椭圆曲线是域上亏格为1的光滑射影曲线。对于特征不等于2的域,它的仿射方程可以写成:y^2=x^3+ax^2+bx+c。复数域上的椭圆曲线为亏格为1的黎曼面。Mordell证明了整体域上的椭圆曲线是有限生成交换群,这是著名的BSD猜想的前提条件。阿贝尔簇是椭圆曲线的高维推广 ...原创 2019-06-03 11:36:43 · 8029 阅读 · 1 评论 -
算法--快速幂(a^b mod n)
《清明》 杜牧 ...原创 2019-04-05 10:52:01 · 2313 阅读 · 1 评论 -
C++的cin.getline和cin和getline等的理解
原因:对于cin和cin.getline和gets等输入,有时候会造成错误的使用,所以单独进行了总结内容:一、cincin 是C++标准的输入流对象(istream类对象)。将输入的数据读取到缓冲区中。例如,当我们使用键盘中输入一个字符串时,必须按一下回车才能输入结束,那么这个回车也会被读取到缓冲区中(\n,对于字符数组中存储的为'\0',因为会将换行符转化为'\0')。那么 输入的...原创 2019-03-30 11:06:34 · 1653 阅读 · 0 评论 -
数据结构----链表队列的实现
#include<stdio.h>#include<malloc.h>#define LEN sizeof( struct node )struct node { int info; struct node *link;};struct linklist{ struct node *f,*r;};struct linklist insert(st...原创 2018-05-13 10:07:04 · 184 阅读 · 0 评论 -
数据结构--单向链表
#include <stdio.h>#include <stdlib.h>#include <time.h>#include<iostream>#include<cstdio>#include<cstring>#include<ctime>typedef struct Link{ int原创 2018-10-11 21:58:44 · 118 阅读 · 0 评论 -
数据结构--双向链表
#include"DualLinkList.h"#include<iostream>#include<cstdio>using namespace std;//初始化双向链表status InitDualLinkListList(DualLinkListList &l){ if(l=(DualLinkListList)malloc(sizeof(...原创 2018-10-11 22:05:49 · 77 阅读 · 0 评论 -
数据结构-----双向循环链表
瞎扯:白天被迫改一个重现都无法重现的错误.各种百度,各种测试,头发掉了一地,然鹅还是没解决出来 。所以晚上复习数据结构放松一下 DualCircleLinkList.h的代码(你也可以省略函数声明)typedef int status;typedef int ElemType;typedef struct Dua...原创 2018-10-13 20:14:10 · 199 阅读 · 0 评论 -
数据结构------使用单向链表实现简单的学生成绩管理操作
函数声明 ypedef int status;typedef int ElemType; //链表节点及链表数据表示定义typedef struct Node{ double math;//数学 double English;//英语 double Chinese;//语文...原创 2018-10-13 20:44:56 · 1596 阅读 · 0 评论 -
C++ STL容器的学习---vector
简单点来说vector就是一个模板类,而且是连续的(list不是连续的),删除中间的任意一个元素,后面的元素都需要往前移动,但对于数组来说,它可以扩容.一、定义和初始化vector<typename>v1(最大容量,初始值)vetcor<typename> v1.push_back(i);//向v1的尾部插入i;vector<typename>v...原创 2018-12-23 10:28:34 · 135 阅读 · 0 评论 -
C++STL容器---String字符容器
C语言只是提供了Char来处理字符,对于字符串来说,只能通过字符串数组来处理,十分不方便.C++ STL提供了一个string容器来处理字符串,可以进行添加和删除和替换等等。用我们家乡话来说就是“真不孬!"一、操作函数s.length();//返回字符串的长度s.append();//在尾部添加相应的字符串s.insert(index,字符);//向字符串s的某个位置插入特定字符...原创 2018-12-28 21:54:13 · 315 阅读 · 0 评论 -
C++STL容器----map与multimap容器
一、定义Map是STL [1] 的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道《百度百科》简单来说,对于数组来说,索引就相当于键值,s[i]就相当于映照的数据.map中不允许重复的键值,multimap允许重复的键值...原创 2019-01-10 19:57:26 · 157 阅读 · 0 评论 -
C++STL---deque容器
一、定义说明deque 为双端队列容器,采用线性表的顺序存储结构,但与vector唯一不同的,deque 采用的分块的线性的存储结构来存储数据,每块的大小为一般512字节。 二、用法 (1)创建没有任何元素的deque对象 deque<int>d; deque<float>dd;(2)创建具有N个元素的deque对象deque<...原创 2019-01-10 21:32:50 · 216 阅读 · 0 评论 -
C++STL---list容器
一、大概含义list实现了双向链表的数据结构,在链表的任一位置的元素进行插入、删除和查找都是极快速的。同时list的每一个节点有三个域:前驱元素指针域、数据域和后继元素指针域。要注意的是由于list对象的节点并不要求在一段连续的内存中,所以对于迭代器,只能通过++或者--的形式将迭代器移动到后继/前驱的节点元素的位置.二、用法 (1)创建list对象list<int&g...原创 2019-01-11 16:52:57 · 101 阅读 · 0 评论 -
C++STL---bitset位集合容器
一、解释bitset容器是一个bit位元素的序列容器,每个元素只占一个bit位,取值为0或1。方法 功能 b.any() b中是否存在置为1的二进制位 b.none() b中不存在置为1的二进制? b.count() b中置为1的二进制个数 b.size() b中二进制位的个数 b[pos] 访问b中在pos位置上的二进制位 b....原创 2019-01-11 19:09:49 · 171 阅读 · 0 评论 -
C++实现十进制转二进制
#include<iostream>#include<string>#include<cmath>#include<algorithm>using namespace std;int main(){ int n; while(cin>>n) { if(n==0) { cout<<" 0--...原创 2019-01-11 21:18:31 · 3622 阅读 · 0 评论 -
C++STL容器---set容器
一、定义set 集合容器相当与实现了二叉排序树,在插入元素的时候,它会自动的调整二叉树的排列,把该元素放到适当的位置,以确保每个子树上面得到根节点的键值大于左子树所有节点的键值,小于右子树的所有节点的键值。另外还要同时确定根节点的左子树的高度与右子树的高度相等,这样来说,二叉树的高度最小,从而检索速度最快。同样的它不会插入重复的键值。将元素自动排序二、目的使用set的目的就是为了快速的...原创 2019-01-10 11:24:09 · 195 阅读 · 0 评论 -
C++ 实现最小公倍数
最小公倍数=两数乘积*最小公约数求最小公约数可以使用欧得几里算法(也就是传说中的辗转相除法)int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b);}原创 2019-03-09 19:54:42 · 25718 阅读 · 5 评论 -
C++ 实现十进制转二进制
#include<iostream>#include<string>#include<algorithm>using namespace std;int main(int argc,char *argv[]){ int n; while(cin>>n) { string s; if(n==0) ...原创 2019-03-09 20:39:13 · 628 阅读 · 0 评论 -
数据结构----顺序栈
#include<stdio.h>#define m0 20struct stack{ int s[m0+1]; int t;};void push(struct stack *p,int x){ if(p->t==m0) printf("栈已满无法插入\n"); else { p->t=p->t+1; p-...原创 2018-05-13 09:05:45 · 318 阅读 · 0 评论