- 博客(18)
- 资源 (1)
- 收藏
- 关注
转载 c++ STL 底层实现及特点
C++ STL 的实现:1.vector 底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问4.stack 底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩...
2018-08-30 19:30:00
386
转载 Apache Shiro介绍
Apache Shiro是一个功能强大、灵活的,开源的安全框架。它可以干净利落地处理身份验证、授权、企业会话管理和加密。Apache Shiro的首要目标是易于使用和理解。安全通常很复杂,甚至让人感到很痛苦,但是Shiro却不是这样子的。一个好的安全框架应该屏蔽复杂性,向外暴露简单、直观的API,来简化开发人员实现应用程序安全所花费的时间和精力。Shiro能做什么呢?验证...
2018-08-02 10:05:00
155
转载 RabbitMQ介绍
RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。 AMQP,即Advanced Message Queuin...
2018-08-02 10:03:00
93
转载 关于nginx服务器的知识
Nginx两大作用:1.轻量web容器 2.反向代理服务器。在Java领域中,Nginx更多的被用作在前端提供负载均衡的反向代理服务。所以本文仅简要介绍下反向代理概念和负载均衡的实现。反向代理是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一...
2018-07-31 16:13:00
111
转载 关于redis的基础知识及面试可能会考到的知识点
最近在学习redis和kafka这两篇博客就分别做一下总结,方便自己以后学习。 redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。【redis数据结构 – 简介】redis是一种高级的key:value存储系统,其中value支持五种数据类型:1.字符串(strings)2.字符串列表(list...
2018-07-31 15:53:00
97
转载 用O(1)的时间复杂度删除链表中的一个节点
void DeleteNode(ListNode** pListHead,ListNode* pToBeDeleted){ if(!pListHead||!pToBeDeleted) return; if(pToBeDeleted->m_pNext!=nullptr){ //要删除的节点不是尾节点 ListNode* pNext =pToB...
2018-03-27 21:01:00
111
转载 打印从1到最大的n位数
bool Increment(char* number){ bool isOverflow = false; int nTakeOver = 0; int nLength = strlen(number); for(int i=nLength-1;i>=0;i--){ int nSum = number[i]-'0'+nTakeOver; ...
2018-03-27 20:44:00
105
转载 求数值的整数次方(类似于pow函数)
bool g_InvalidInput = false; //定义全局变量来标识是否出错double PowerWithunsignedExponent(double base,unsigned int exponent){if(exponent ==0) return 1;if(exponent==1) return base;double result = PowerWi...
2018-03-27 19:26:00
188
转载 剪绳子(动态规划及贪心法)
int maxProductAfterCutting_solution(int length){ if(length<2) return 0; if(length==2) return 1; if(length==3) return 2; int* products = new int [length+1]; ...
2018-03-26 20:07:00
231
转载 机器人的运动范围(采用回溯法)
int getDigitSum(int number){ //计算数位之和 int sum = 0; while(number>0){ sum+=number%10; number/=10; } return sum;}bool check(int threshold,int rows,int cols,int row,int c...
2018-03-26 19:23:00
117
转载 在矩阵中寻找符合条件的路径
//整体思路为用回溯法来解决,在矩阵中任选一个作为起点,在这个起点周围寻找下一个数如果找不到就返回上一层,如果找的到就重复这个过程,直到找到完整的数列。//另外需要定义一个bool数组来存储该位置是否已经访问过。bool hashPathCore(const char* matrix,int rows,int cols,int row,int col,const char* st...
2018-03-25 16:05:00
264
转载 旋转数组(采用二分查找的方法来查找出数组中的最小值,注意特殊情况)
int MinInOrder(int* numbers,int index1,int index2){ //由于中间的数字和前面后面的数字都相同因此只能采用顺序查询int result = numbers[index1]; for(int i=index1;i<=index2;i++){ if(result>numbers[i]) ...
2018-03-25 15:09:00
187
转载 斐波那契数列的两种实现方式
#include <iostream>using namespace std;//斐波那契数列递归与循环的两种实现 long long Fibonacci(unsigned int n){ //递归方法(由于存在大量重复计算效率非常低)不推荐 if(n<=0) return 0; if(n==1) ...
2018-03-25 13:46:00
148
转载 用两个栈来实现一个队列
#include <iostream>#include<exception>#include<stdlib.h>#include <stdexcept>#include<stack>using namespace std;template<typename T>class CQueue //定义队列声明{public...
2018-03-24 14:11:00
56
转载 寻找二叉树的下一个子节点(采用中序遍历构造的树)
//寻找二叉树的下一个节点寻找中序遍历序列的下一个节点BinaryTreeNode* GetNext(BinaryTreeNode* pNode){ if(pNode==nullptr) return nullptr; BinaryTreeNode* pNext = nullptr; if(pNode->m_pRight!=nullptr){ //...
2018-03-24 13:19:00
100
转载 常见的五种排序方式
#include <iostream>using namespace std;void BubbleSort(int a[] ,int n){//冒泡算法实现,时间复杂度为(On2) bool flag = true; int k =n; while(flag){ flag= false; for(int i=1;i<...
2018-03-24 12:20:00
631
转载 重建二叉树(已知前序遍历和中序遍历序列求二叉树)
#include <iostream>#include<exception>#include<stdlib.h>#include <stdexcept>using namespace std;struct BinaryTreeNode{ //定义二叉树的节点 int m_nValue; BinaryTreeNode* m...
2018-03-24 00:05:00
250
转载 从尾到头打印链表(c++实现)
//反序输出链表中的值采用的方法是顺序遍历链表,将读取到的数存到栈中,再输出的办法。void PrintListReversingly_Iteratively(ListNode* pHead){ stack<ListNode*> nodes; ListNode *pNode=pHead; while(pNode!=nullptr){ nodes...
2018-03-23 22:25:00
134
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人