自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 fastjson常用操作

简单JSON对象操作1.将String对象转换为JSON对象JSONObject jsonObject = JSONObject.parseObject(resp);2.将JSON对象序列化为String对象String jsonString = JSON.toJSONString(jsonObject);3.将String对象反序列化为JAVA对象CaseConfigDto ca...

2019-12-04 18:06:50 255

原创 GIT使用指南

本地创建工程与远程仓库进行关联本地创建工程随意的本地创建一个工程 LeetCode使用git init初始化为git仓库使用git add增加一次改动使用git commit -m update提交一次改动远程创建仓库在github上新建仓库工程名和本地一致本地工程与远程仓库进行关联关联远程 git remote add origin git@github.com:...

2019-11-12 00:03:59 203

原创 【JAVA】文件操作(File)

在Java中,可以用File类来表示一个文件(包括文件夹)创建文件File file = new File("E:\\1.txt"); if(!file.exists()){ System.out.println("文件不存在同时创建该文件"); file.createNewFile(); } if(fi

2017-01-14 21:35:54 456

原创 python导入urllib遇到的问题

在编写python爬虫导入urllib包的时候报错Traceback((most recent call last): File “urllib.py”, line 1, in import urllib2 File “C:\Python27\lib\urllib2.py”, line 120, in from urllib import (unwrap, unq

2016-12-14 22:28:25 2826

原创 【C++】类型转换

类型转换void Test (){ int i = 1; double d = i; // 隐式类型转换 printf("%d, %.2f\n" , i, d); int* p = &i;// 显示的强制类型转换 int address = (int) p; printf("%x, %d\n" , p, address);}C++强制类型转换stat

2016-09-08 18:27:18 376

原创 【设计模式】单例模式

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。《设计模式》一书中给出了一种很不错的实现,定义一个单例类,使用类的私有静态指针变量指向

2016-09-08 11:47:34 409

原创 【数据结构】布隆过滤器

布隆过滤器(Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。 它实际上是由一个很长的二进制向量和一系列随机映射函数组成,布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难,但是没有识别错误的情形。在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素是否在一个集合中

2016-09-04 11:22:57 422

原创 【数据结构】位图

位图(bitmap),就是用一块内存区域的每个比特表示一个对象的数据结构。优点是速度快,内存空间占用小,能表示大范围的数据。假设要对0到一千万范围内的、没有重复元素的正整数排序,则利用位图数据结构很合适。应用场景: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 思路:如果内存够的话,40亿个整型使用位图存储需要500M左右的空间。#pragm

2016-09-04 11:12:22 360

原创 【C++】顺序表的实现

顺序表:用一段地址连续的存储单元依次存储数据元素的线性结构。为什么要实现顺序表? 定义数组,长度是固定的比如数组num,只能存储十个元素,如果多于十个元素,也不能再增加存储空间了,不能动态分配内存。 顺序表是连续的存储空间。不同之处在于可以动态分配内存。静态存储&动态存储 // 顺序表的静态存储(存在的问题:空间不能增大或缩小) typedef int DataType; typede

2016-08-13 10:11:44 340

原创 【剑指offer】替换空格

题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路一:我们首先想到的就是从前往后扫描,如果空格,就替换为%20,但是这样需要移动空格后的元素。 思路二:首先遍历一遍字符串,统计出空格的个数,并可以由此计算出替换之后的字符串的长度。每替换一个空格,长度增加2,因此替换之后的字符串长度等于

2016-07-29 22:46:51 258

原创 【剑指offer】二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:从二维数组的右上角的元素开始判断,因为此元素是它所在行的最大数,是它所在的列的最小数。如果它等于要查找的数字,则查找过程结束。如果它大于要查找的数字,则可以排除它所在的列。如果它小于要查找的数字,则可排除它所在的行。这样如果

2016-07-29 21:35:29 257

原创 【数据结构】单链表—寻找两个相交链表中第一个公共结点 — 蛮力法 / 栈 / 指针先走

题目:输入两个链表,找到它们的第一个公共结点。思路一:蛮力法 在第一个链表上顺序遍历每一个结点,每遍历一个节点在第二个链表顺序遍历每一个结点,如果第二个链表上有一个结点和第一个链表上一样,说明两个链表在这个结点上重合,于是就找到它们的公共结点。len1 = m,len2 = n,时间复杂度为O(mn)。思路二:栈 分别把两个链表的结点放入两个栈里,这样两个链表的尾结点就位于两个栈的栈顶,接下来就

2016-07-26 13:44:25 678

原创 【数据结构】单链表—合并两个排序链表 — 递归

题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍使按照递增排序的。思路: 代码如下:template<class T>struct ListNode{ T _value; ListNode<T>* _next; ListNode(const T& value) :_value(value) ,_next(NULL)

2016-07-26 13:26:33 466

原创 【数据结构】单链表—在O(1)时间删除链表结点

题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。思路:如果按常规思路来 删除一个结点需要找到该结点的前一个结点,将这个节点的_next指向被删除节点的 _next,找到这个该结点的前一个结点就需要遍历链表,此时就不是O(1)时间。 删除结点我们不需要找到前一个结点,我们可以很方便的找到后一个节点,我们可以把后一个节点的值给前一个结点

2016-07-26 13:06:55 531

原创 【数据结构】单链表—从尾到头输出单链表 — 栈 / 递归

题目:输入一个链表的头节点,从尾到头反过来打印每个节点的值思路一:遍历的顺序是从头到尾,而输出的顺序是从尾到头,也就是说第一个遍历的最后一个输出,最后一个遍历的第一个输出,这是先进后出,我们可以借助栈,遍历链表将每一个节点放入栈中,然后再从栈顶逐个输出节点的值。此时输出的顺序已经反过来了。思路二:可以用栈实现我们就可以想到递归。我们每访问一个结点时,先递归输出后面结点的值,然后再输出自身的值,这样链

2016-07-26 12:01:07 2428

原创 【数据结构】单链表—判断一个链表是否形成了环形结构 — 快慢指针

题目:判断一个链表是否形成了环形结构? 思路:定义两个指针,同时从链表的头节点出发,一个指针一次走一步,另一个指针一次走两步,如果走的快的指针追上走的慢的指针,那么链表就是环形链表,如果走的快的指针走到了链表的末尾都没有追上第一个指针,那么这个链表就不是环形链表。代码如下:template<class T>struct ListNode{ T _value; ListNode<

2016-07-26 11:48:55 746

原创 【数据结构】单链表—链表中倒数第K个结点 — 快慢指针

输入一个链表,输出该链表中倒数第K个结点。注:链表的尾结点是倒数第一个结点。 思路一: 遍历一遍链表,求出链表的长度。 正数 = 长度 - 倒数 + 1 如图所示: 然后遍历正数的次数,便得到了倒数第K个结点。但是这种方法需要遍历链表两次。思路二: 遍历一次可以用快慢指针解法,即定义两个指针,快指针和慢指针,求倒数第K个:结点快指针先走K-1步,然后快慢指针一起走当快指针走到结尾,慢

2016-07-26 11:40:23 533

原创 【数据结构】单链表—求链表中间节点(只遍历一次链表)— 快慢指针

题目:给出一个单链表的,不知道结点N的值,怎样只遍历一次就可以求出中间结点。我们可以定义两个指针,快指针和慢指针,都从头开始遍历链表,快指针每次走两步,慢指针每次走一步,当快指针走到结尾时,慢指针指向的便是链表的中间节点。代码如下:template<class T>struct ListNode{ T _value; ListNode<T>* _next; ListNode

2016-07-26 10:37:59 1332

原创 【数据结构】单链表—逆置单链表

题目:定义一个函数,输入一个链表的头结点,反转该链表并返回反转链表后的头结点。 我们可以借助图来分析一下:我们定义一个新的头结点为head,将begin指向head->_next,当begin不为空的时候,tmp = begin,begin = begin->_next,此时tmp是我们要摘下来的结点。tmp->_next = head; head = tmp;就完成了结点链接的操作。当循环走完时

2016-07-26 10:28:26 4893

原创 【数据结构】单链表—冒泡排序

单链表的排序(冒泡排序)

2016-07-26 09:56:18 687

原创 【数据结构】队列以及两个队列实现一个栈

队列以及两个队列实现一个栈#pragma oncetemplate struct QueueNode{public : QueueNode( const T& x) :_data(x) ,_next(NULL) {} T _data; QueueNode* _next;};template class

2015-10-31 17:08:45 396

原创 【数据结构】栈以及两个栈实现一个队列

栈以及两个栈实现一个队列//数组版动态增长的栈#pragma oncetemplate class stack{ public : stack() :_top(NULL) ,_base(NULL) ,_size(0) ,_capacity(0) {} void PushStac

2015-10-31 17:06:28 302

原创 【数据结构】逆波兰表达式

栈 数据结构 C++ 逆波兰表达式

2015-10-31 17:01:28 675

原创 【数据结构】一个数组实现两个栈

数据结构 栈 数组

2015-10-31 16:51:17 797

原创 【数据结构】实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)

实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)在栈中操作的话,push和pop的时间复杂度就是O(1),所以我们只用实现Min(返回最小值的操作)的时间复杂度为O(1),思想就是用两个栈,一个就是普通的存取数据的栈,另一个为当前未知的最小值,插入数据和删除数据两个栈都进行操作,返回最小值的话,直接对第二个栈操作。代

2015-10-31 16:46:37 4444 3

原创 【数据结构】检查元素出栈的合法性

这个问题是什么意思呢?其实很简单,题目的意思就是想检查一个一个序列是否为另一个序列的合法出栈序列?若1 2 3 4 5为入栈序列,则该序列的合法出栈序列为:5 4 3 2 1     4 3 2 1  5   3 2 1 4 5   等。。。。现在要写一个程序判断该出栈序列是否正确,我们的思想就是,创建两个数组(一个存入栈序列,一个存出栈序列),一个栈。#inc

2015-10-31 16:40:21 499

原创 【数据结构】用栈实现迷宫

#include using namespace std;#define N 10#include struct pos{ int _row;// 行 int _col;// 列};bool cheakstep(pos a){ if(a._col > -1||a._col < N-1|| a._row > -1||a._row

2015-10-31 16:28:19 1448

原创 【C++】实现STL模板类string

#include#include using namespace std;class String{public: String() { _str = new char[1]; _str[0] = '\0'; _size = 0; _capacity = 1; } String(const char* str) {

2015-09-05 20:16:52 546

原创 【C++】双向链表的实现

该双向链表的头为指针都指向空#includeusing namespace std;typedef int DataType;class LinkNode{ friend class List; friend void Test1(); friend void Test3(); friend void Test4();public: LinkN

2015-09-05 20:14:25 380

原创 【C++】复数类的实现

#includeusing namespace std;class Complex{private: double _real; double _image;public: Complex(double real = 2.2,double image=1.1)//构造函数 { cout<<"构造函数被调用"<<endl; _real = real;

2015-08-25 21:27:10 870

原创 【C++】String类及其优化版的实现

#includeusing namespace std;class String{public: String() { _ptr = new char[1]; _ptr[0] = 0; } String(const char* str) { _ptr = new char[strlen(str)+1]; strcpy(_ptr,str);

2015-08-25 21:19:34 825

原创 【C++】顺序表的实现

#include#includeusing namespace std;//typedef struct FindRet//{// bool isFind; // 是否找到的标示// size_t index; // 找到数据的下标//}Findret;typedef int DataType;class SeqList{public:

2015-08-25 21:09:02 674

原创 【C++】万年历的实现

/******************************************************************************************Date.hpp: Copyright (c) Bit Software, Inc.(2013), All rights reserved.Purpose: 声明并实现一个万年历类【腾讯面试题】

2015-08-25 21:01:35 1766

原创 【C++】单链表的实现

链表概念--链表是一种线性表,但是并不是顺序存储,而是每个节点里面存储着下一个节点的指针,把存储数据元素的数据串链起来。 单链表演示图:#include using namespace std;typedef int DataType; struct LinkNode{ DataType _data; LinkNode* _next;

2015-08-25 20:48:31 589

原创 【C语言】memcmp函数的实现

memcmp是比较内存区域buf1和buf2的前count个字节。该函数是按字节比较的。 头文件#include  int memcmp(const void *buf1, const void *buf2, unsigned int count);比较内存区域buf1和buf2的前count个字节。 头文件

2015-05-22 12:58:58 22620 2

原创 【C语言】memcpy函数的实现

1函数原型void *memcpy(void *dest, const void *src, size_t n);2功能从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中3所需头文件C语言中使用#include ;C++中使用#include 和#include 都可以。4返回值函数返回指向dest的指针。5说明1.s

2015-05-21 23:27:49 2716

原创 【C语言】strlen函数的实现

strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含“\0”)。 根据它的特性我们编写函数:#include#includeint my_strlen(char const *str1){ int count=0; as

2015-05-21 14:21:17 856

原创 【C语言】strcmp函数的实现

strcmp:C/C++函数,比较两个字符串设这两个字符串为str1,str2,若str1==str2,则返回零;若str1>str2,则返回正数;若str1 根据这些我们来实现这个函数:#include#includeint my_strcmp(char const *str1,char const *str2){ assert(str

2015-05-21 13:24:52 4889 1

原创 【C语言】strcat函数的实现

strcat:将两个char类型链接。返回指向字符串的指针。 然后我们简单实现一下这个函数:#include#includechar * my_strcat(char *str1,char const *str2){ char* tmp=str1; assert(str1); assert(str2); while(*str1!='

2015-05-21 12:42:47 970

原创 【C语言】strcpy函数的实现

strcpy函数的基本内容:原型声明:extern char *strcpy(char* dest, const char *src);头文件:#include string.h> 和 #include 功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返

2015-05-21 11:54:27 1850 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除