自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 资源 (3)
  • 收藏
  • 关注

原创 float内存实现

以8.25举例1.换算成二进制 8 = 1000; 0.25= .01 0.25*2 = 0.5 个位取0,0.5*2 = 1个位取1 ;8.25 = 1000.012.换算成科学计数法8.25 = 1000.01= 1.00001 * 2^33.float 内存占用4个字节,32位 = 1符号位+8指数位+23底数位 3.1 符号位0正1负;...

2019-04-29 19:04:54 282

原创 redis字典实现dict

dict.c/dict.h1.实现/* * 哈希表节点 */typedef struct dictEntry { // 键 void *key; // 值 union { void *val; uint64_t u64; int64_t s64; } v; // 指向下个哈...

2018-11-15 15:42:14 451

原创 redis双端链表实现adlist

1.实现/* * 双端链表节点 */typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 struct listNode *next; // 节点的值 void *value;} listNode;/* * 双端链表迭代器 */typedef ...

2018-10-18 18:09:39 241

原创 redis字符串实现sds

sds.c/sds.h1.实现sds中字符串的实现是对string进行的一层包装定义:/* * 类型别名,用于指向 sdshdr 的 buf 属性 */typedef char *sds;/* * 保存字符串对象的结构 */struct sdshdr { // buf 中已占用空间的长度 int len; // buf 中剩余可...

2018-10-18 15:27:45 244

原创 go基础语法-json

// Go 提供内置的 JSON 编解码支持,包括内置或者自定义类// 型与 JSON 数据之间的转化。package mainimport "encoding/json"import "fmt"import "os"// 下面我们将使用这两个结构体来演示自定义类型的编码和解// 码。type Response1 struct { Page int Frui...

2018-08-24 17:42:51 227

原创 go基础语法笔记-字符串

// 标准库的 `strings` 包提供了很多有用的字符串相关的函数。// 这里是一些用来让你对这个包有个初步了解的例子。package mainimport s "strings"import "fmt"// 我们给 `fmt.Println` 一个短名字的别名,我们随后将会经常// 用到。var p = fmt.Printlnfunc main() { //...

2018-08-24 15:43:30 136

转载 贪吃蛇,顺序打印矩阵

题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.题解就是一圈一圈地打印,只要控制好循环就可以。 注意单行单列的情况。代码<?php<?phpfunction pri...

2018-06-03 14:18:17 496

原创 队列的链表实现

#include #include#include using namespace std;#define maxsize 100//顺序栈的实现typedef struct ListNode{ int data; ListNode* next;}ListNode;typedef struct ListQueue{ ListNode* front; ListN

2016-09-13 15:29:20 306

原创 顺序栈和链栈的实现

之前又一次现场笔试,当时直接懵逼了,发现自己之前看书,完全没注意这些,整个过程尴尬,后面决定好好把这些数据结构的基础实现完成一遍栈的实现有三种,顺序存储链式存储还有共享栈一、链式存储#include #include#include using namespace std;//链栈的实现typedef struct ListNode{ int val; ListNode

2016-09-13 11:17:51 467

原创 链表的创建(头插法尾插法)与遍历

这里要注意一点,在void createList(ListNode* &pHead)的时候,用的是指针引用,因为在main中head并没有开辟空间,如果在createList中为pHead开辟空间的时候,main中的head依旧还是指向NULL的。如果在main中为head开辟了空间的话,就不需要用指针的引用了。道理很简单,就和你传int参数是一个道理。createList中的pHead是

2016-09-13 09:49:59 1420

原创 搜狗校招笔试

#include #include #include#include#include #includeusing namespace std;/int main(){    string str;    string str1;    string str2;    string maxstring;    long long int maxle

2016-09-13 09:31:17 624

原创 美团笔试

不相邻数相加,最大数和#include #include #include#include using namespace std;int main(){ string n; getline(cin,n); int num=atoi(n.c_str()); string s; while(num) { num--; getline(cin,s); if(s

2016-09-11 17:33:03 516

原创 左老师容器接水

给定一个非负数的数组,代表一个容器请问可以接多少水,比如10 5 20 可以接10-5=5的水时间复杂度O(N)额外空间复杂度O(1);1、对于I未知遍历最左边最大值,最右边最大值,可以求得i位置的水量,可以准备两个数组L[i]表示i位置左边最大值,R[I]表示i位置右边最大值O(N)2、可以用一个左边最大值max代替L[I]这个数组O(N)3、不用数组,只用两个左右指针谁小谁动#in

2016-09-06 16:24:20 389

原创 左老师-最长递增子序列

最长递增子序列O(N2)#include#include#include using namespace std;//最长递增子序列长度int maxlen(int *arr,int len){ int b[100]={0};//当必须以arr[i]为结尾的前提下,最长递增长度为h[i] int max=1; for(int i=0;i<8;i++) { b[i]=1

2016-09-06 14:52:20 336

原创 左老师-子数组最大和

子数组最大和时间复杂度O(n)

2016-09-06 12:47:22 273

原创 Windows下C++多线程同步

程序是计算机指令的集合,它以文件的形式存储在磁盘上。而进程通常被定义为一个正在运行程序的实例,是一个程序在其自身地址空间的依次执行活动。进程:由操作系统用来管理进程的内核对象和地址空间组成(4GB)线程:由线程的内核对象和线程栈组成当多线程访问全局变量时需要多线程同步:互斥对象、事件对象、关键代码段互斥对象:互斥独享可以看做是一把房间钥匙,只有得到这把钥匙后,我们才能进入放进啊,完

2016-09-06 11:14:40 513

转载 数值算法

数值算法  C++ STL 的数值算法(Numeric algorithms)是一组对容器元素进行数值计算的模板函数,包括容器元素求和 accumulate 、两序列元素的内积 inner_product 、容器元素的一系列部分元素和 partial_sum 、容器每对相邻元素的差。 1 /* 下面示例程序对数组 iArray={1, 2, 3, 4, 5

2016-09-03 17:13:28 430

转载 变易算法

变易算法    C++ STL 的变易算法 (Mutating algorithms) 是一组能够修改容器元素数据的模板函数,可进行序列数据的复制、交换、替换、填充、移除、旋转、随机抖动和分割。这些算法对迭代器有较高的要求,具体的迭代器类型随各个算法而定,或前向迭代器、或双向迭代器、又或者是随机迭代器,以提供算法所需要的迭代器操作。应用变易算法时,先要检查容器的迭代器是否符合要求,防止产生

2016-09-03 17:12:31 625

转载 string 基本字符序列容器

string 基本字符序列容器    C语言并没有提供一个专门的字符串类型,需要通过字符数组,对字符串进行存储和处理。字符数组的末尾是一个值为 0 的 null 字符,表示字符串的结束。从而,一个用于存储 n 个字符的字符数组,字符个数为 n+1 。基于这样的字符数组,就可实现字符串的字符添加、删除、搜索、替换、连接和子串操作等。    在标准 C++ 中,字符串类 string 由

2016-09-03 17:00:21 600

转载 stack堆栈容器

stack堆栈容器    堆栈是一个线性表,插入和删除只在表的一端进行。这一端称为栈顶(Stack Top),另一端则为栈底(Stack Bottom)。堆栈的元素插入称为入栈,元素的删除称为出栈。由于元素的入栈和出栈总在栈顶进行,因此,堆栈是一个后进先出(Last In First Out)表,即 LIFO 表。    C++ STL 的堆栈泛化是直接通过现有的序列容器来实现的,默认

2016-09-03 16:59:30 318

转载 queue 队列容器

queue 队列容器    queue 队列也是一个线性存储表,与后进先出的堆栈不同,元素数据的插入在表的一端进行,在另一端删除,从而构成了一个先进先出(First In First Out) 表。插入一端称为队尾,删除一端称为队首。    由于C++ STL 的队列泛化,默认使用双端队列 deque 来实现,因此,queue 也可看成一个容器的适配器,将 deque 容器转换为 qu

2016-09-03 16:59:06 417

转载 priority_queue 优先队列容器

priority_queue 优先队列容器    优先队列容器也是一种从一端入队,另一端出对的队列。不同于一般队列的是,队列中最大的元素总是位于队首位置,因此,元素的出对并非按照先进先出的要求,将最先入队的元素出对,而是将当前队列中的最大元素出对。    C++ STL 优先队列的泛化,底层默认采用 vector 向量容器,使得队列容器的元素可做数组操作,从而应用堆算法找出当前队列最大

2016-09-03 16:58:26 1615

转载 非变易算法

非变易算法  C++ STL 的非变易算法(Non-mutating algorithm)是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。作为算法函数参数的迭代器,一般为 Input Iterator 输入迭代器,具有 "++" 迭代和 "*" 访问操作。通过迭代器的元素遍历,可对迭代器区间所界定的元素进行操作。因此,非变易算法具有极为广泛的适

2016-09-03 16:57:40 407

转载 multimap

multimap 多重映照容器    multimap 与 map 一样,都是使用红黑树对记录型的元素数据,按元素键值的比较关系,进行快速的插入、删除和检索操作,所不同的是 multimap 允许将具有重复键值的元素插入容器。在 multimap 容器中,元素的键值与元素的映照数据的映照关系,是多对多的,因此,multimap 称为多重映照容器。multimap 与 map 之间的多重特性

2016-09-02 22:20:48 434

转载 map

map映照容器    map映照容器所处理的元素数据,与数据库表的具有键值的记录非常相似,由一个键值和其他若干数据(映照数组)组成,键值和映照数据之间,可建立一个数学上的映照关系,由此而得映照容器的名称。容器的数据结构同样是采用红黑树进行管理,插入的元素键值不允许重复,所使用的节点元素的比较函数,只对元素的键值进行比较,元素的各项数据可通过键值检索出来。    map 映照容器是一种关

2016-09-02 22:19:51 252

转载 multiset

multiset 多重集合容器    与 set 集合容器一样, multiset 多重容器也使用红黑树组织元素数据,只是 multiset 容器允许将重复的元素键值插入,而 set 容器则不允许。multiset 容器实现了 Sorted Associativate Container 、Simple Associative Container 和 Multiple Associativ

2016-09-02 22:19:10 479

转载 set

set集合容器    set集合容器使用一种称为红黑树(Red-Black Tree) 的平衡二叉检索树的数据结构,来组织泛化的元素数据。每个节点包含一个取值红色或黑色的颜色域,以利于进行树的平衡处理。作为节点键值的元素的插入,必须确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值。不会将重复的键值插入容器,也不需要指定具体的插入位置,而按元素在树中的关联关系,进

2016-09-02 22:18:18 277

转载 list

list 双向链表容器(双向循环链表的数据结构)    list 是双向链表的一个泛化容器的容器,实现了 Reversible Container 、 Front Insertion Sequence 和 Back Insertion Sequence 等概念的接口规范。作为一种序列容器,它的数据元素可通过链表指针串接成逻辑上的线性表。    不同于采用线性表顺序存储结构的 vector

2016-09-02 22:16:34 270

转载 deque

deque 双端队列容器    deque 双端队列容器 ( double-ended queue ) 与 vector 非常相似,不仅可在尾部插入和删除元素,还可以在头部插入和删除,算法的时间复杂度也是常数阶 O(1),是一个实现了 Random access container 、Back insertion sequence 和 Front insertion sequence

2016-09-02 22:11:11 5345

转载 vector

vector 向量容器    作为数组的一个泛化推广的 vector 容器,不仅可以进行数组一样的元素随机访问,还可以在容器的尾端插入新元素,是一个实现了 Random Access Container 和 Back Insertion Sequence 概念的模型      vector 是一种简单、高效的容器。在尾端插入和删除元素,算法时间复杂度为 O(1) 常数阶,其他元素的插入

2016-09-02 22:10:23 294

转载 前言

#include #include #include #includeusing namespace std; int main() {   vector vInt;   vInt.push_back(3);   vInt.push_back(6);   vInt.push_back(9);   int a[3]={1,2,3};   vector:

2016-09-02 15:50:34 279

原创 腾讯2016研发工程师编程题

[编程题] 微信红包春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。给定一个红包的金额数组gifts及它的大小n,请返回所求红包的金额。若没有金额超过总数的一半,返回0。测试样例:[1,2,3,2,2],5返回:2

2016-09-01 17:05:03 388

原创 腾讯2016暑期实习

[编程题] 有趣的数字小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢?输入描述: 输入包含多组测试数据。 对于每组测试数据: N - 本组测试数据有n个数 a1,a2...an - 需要计算的数据 保证: 1<=N<=100000,0<=ai<=INT_MAX. 输出描述:对于

2016-09-01 16:36:37 415

原创 2016华为机试

[编程题]最高分是多少老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩. 输入描述:输入包括多组测试数据。每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。学生ID编号从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数

2016-08-30 20:48:08 567

原创 超长正整数相加

#include #include using namespace std;void add(string s1,string  s2)  {      int len1=s1.size();      int len2=s2.size();      int a[100]={0},b[100]={0};      //将字符串输入到整型数组中,低位放在第0位  

2016-08-29 20:50:03 464

原创 放苹果

对于m个苹果,n个盘子f(m,n):如果m如果m>n,那么有两种情况:一种有空盘子的情况,一种没有空盘子的情况,两种情况不重叠且加一起一定为情况总数。第一种情况:m个苹果放在n-1个盘子里,因为至少有1个空盘子,即f(m,n-1)第二种情况:每个盘子都至少有一个苹果,m-n个苹果再放到n个盘子里,即f(m-n,n)。由上面两种情况得到递归式f(m,n)=f(

2016-08-29 09:51:19 380

原创 查找组成一个偶数最接近的两个素数

任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对 请实现如下接口    public static class PrimePair    {       public int primeMin;       public int primeMax;    }    public static PrimePair fin

2016-08-28 22:11:22 440

原创 二进制中1的个数

请实现如下接口    public static int findNumberOf1(intnum)    {        /* 请实现 */        return 0;    }譬如:输入5 ,5的二进制为101,输出2 涉及知识点:位运算知识点位运算运行时间限制10M内存限制128输入

2016-08-27 17:07:29 404

原创 最长公共子字符串

题目标题:计算两个字符串的最大公共字串的长度,字符不区分大小写详细描述:接口说明原型:int getCommonStrLength(char * pFirstStr, char * pSecondStr);输入参数:     char * pFirstStr //第一个字符串     char * pSecondStr//第二个字符串 知识点字符串,查找

2016-08-27 16:57:27 499

转载 C++拷贝构造函数详解

这篇是转载的感觉再写不出比这还清晰的了,附上链接http://blog.csdn.net/lwbeyond/article/details/6202256一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plain copyint a = 100;

2016-08-25 19:45:29 297

人脸检测图片

这是一个组哟人脸检测与识别的珍贵图片资源,包含了人脸与非人脸,以及txt文件,是做haar等检测方法的珍贵工具

2015-11-04

冈萨雷斯图像处理书籍

图像处理的经典书籍,详细的pdf版冈萨雷斯的第二版

2015-10-11

9b96示例程序

9b96的稳流放电程序以及一些程序的集成化,外加一些温度传感器的程序

2013-02-28

空空如也

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

TA关注的人

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