- 博客(55)
- 资源 (1)
- 收藏
- 关注
原创 .net framework 4.7.1中的Hashtable源码剖析
基本概念 哈希的概念 哈希,是把输入值通过哈希算法产生固定长度的输出的函数。 哈希冲突的处理 哈希冲突解决很多,这里不做讨论等。源码采用的是双重散列法。下面是该算法的简单介绍。 双重散列法(DoubleHashing) 双重散列法是经典的数据表结构(T)。设 n 为存储在 T 中元素的数目,m为T的容量,则T的加载因子为 ...
2018-03-04 13:19:10 502
原创 数据库索引总结
求职面试中,经常问到索引相关问题。故此做个总结。 首先,为什么要用索引?很多人会回答提高查询效率,那么为什么索引能提升查询效率呢?原因是内部数据结构的设计(索引页和B- B+树)。下面进行一些概念的总结,参考了书本和博客,加入了一些自己的理解。数据库基础知识 数据库是以页为存储单元的,存放数据的叫数据页,放索引的称为索引页。不难理解,无序的存储数据,必然导致查询效率的低下,所...
2018-03-02 12:40:12 306
原创 http post和get的区别
语义方面,get为了请求资源,post为了修改资源。http协议中,get被认为是安全的(即不会修改资源),所以会被缓存,即同样的get请求,不会请求到服务器而是从缓存中返回。post则相反。get只能使用url编码,而post可以使用任意编码。post相对get来说安全,这个安全是信息安全,但是注意get和post都是明文传输,不能从这个角度说post更安全,如果非要说post安全的话,就是ge...
2018-03-01 14:16:41 217
原创 8. String to Integer (atoi)
重点:多种输入情况的考虑public class Solution { public int MyAtoi(string str) { int len, negative = 1; double longRes=0; string s = str.Trim(), tmpStr = "";
2017-12-29 15:24:15 135
原创 6. ZigZag Conversion
分析:用字符串数组存储每一行的字符public class Solution { public string Convert(string s, int numRows) { int len=s.Length,row=0,delta=1,i=0; string res=""; string[] resArr=new string[
2017-12-28 22:39:24 154
原创 5. Longest Palindromic Substring
重点:动态规划实现。 以下为c#实现(leetcode提交后提示空间超出限制)public class Solution { public string LongestPalindrome(string s) { bool[,] table=new bool[1000,1000]; int i,len=s.Length,longestLeng
2017-12-27 20:34:52 159
原创 4. Median of Two Sorted Arrays
重点:使用折半查找法。 以下为c#实现。参考solution的java实现,仍有些不明白的地方。public class Solution { public double FindMedianSortedArrays(int[] nums1, int[] nums2) { int m=nums1.Length,n=nums2.Length; i
2017-12-26 22:09:41 103
原创 3.Longest Substring Without Repeating Characters
LeetCode 第三题 Longest Substring Without Repeating Characters(最长非重复子串)注意:窗口、哈希表的使用降低时间复杂度代码如下:public class Solution { public int LengthOfLongestSubstring(string s) { Dictionarychar
2017-12-23 20:56:31 146
原创 2. Add Two Numbers
需要注意,并且学习的地方有 1.dummy node的使用 。如果不使用,则需要在循环外,多一次赋值操作; 2.多种情况的考虑,两个list长度不一致的情况(其一为空或者不等长); 3.最后一次循环有进位的情况。以下为C#代码/** * Definition for singly-linked list. * public class ListNode { *
2017-12-21 18:28:46 131
转载 Ajax, 选择GET还是POST?(转)
转自:http://developer.51cto.com/art/200906/130400.htm当我们不通过重新加载页面,用Ajax访问服务器的时候,有两个选择可以将请求信息传送到服务器上。这两个选择分别是GET和POST。在把请求信息发送到服务器上以加载新的页面时,这两个选择有两个不同之处。第一个区别是你是请求了信息的一小部分而不是整个页面。第二个区别也是最明显的区别是由于
2016-09-29 11:46:00 284
转载 exit和return的区别
转自http://blog.csdn.net/firefly_2002/article/details/79605951. exit用于结束正在运行的整个程序,它将参数返回给OS,把控制权交给操作系统;而return 是退出当前函数,返回函数值,把控制权交给调用函数。2. exit是系统调用级别,它表示一个进程的结束;而return 是语言级别的,它表示调用堆栈的返回。3. 在main
2015-03-06 20:58:51 417
转载 _CRT_SECURE_NO_WARNINGS
Warning 1 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.在编程过程中难免
2015-01-25 16:42:43 416
转载 typedef使用大全(指向函数的指针)
转自http://blog.chinaunix.net/uid-20659461-id-1905090.html三.指向函数的指针 在typedef的使用中,最麻烦的是指向函数的指针,如果没有下面的函数,你知道下面这个表达式的定义以及如何使用它吗? int (*s_calc_func(char op))(int,int); 如果不知道,请看下面的程序
2015-01-18 21:01:47 385
转载 typedef使用大全(结构体)
#define S(s) printf("%s\n", #s); s typedef struct _TS1{ int x, y;} TS1, *PTS1, ***PPPTS1; // TS1是结构体的名称,PTS1是结构体指针的名称// 也就是将结构体struct _TS1 命名为TS1,// 将struct _TS1 * 命名为 PTS1// 将struct _TS1 **
2015-01-18 20:57:47 500
转载 typedef使用大全(数组)
一.数组typedef到处都是,但是能够真正懂得typedef使用的不算太多。对于初学者而言,看别人的源码时对到处充斥的typedef往往不知所错,而参考书又很少,所以在此给出一个源码,供大家参考 #include #include /* 避免Visual C的for与标准for的不同 */#definefor if (0); elsefor /* dim(a)
2015-01-18 20:55:48 388
转载 每天进步一点点——Linux中的文件描述符与打开文件之间的关系
1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符。程序刚刚启动的时候,0是标准输入,1是标准输出,2是标准错误。如果此时去打开一个新的文件
2015-01-16 16:24:35 427
转载 fileno
函数名称:fileno(在VC++6.0下为_fileno) 函数原型:int _fileno( FILE *stream ); 函数功能:fileno()用来取得参数stream指定的文件流所使用的文件描述符 返回值:某个数据流的文件句柄 头文件:stdio.h 相关函数:open,fopen,fclose 程序示例 先看MSDN上的例子:
2015-01-16 11:38:02 601
转载 文件描述符 和 流的关系
任何一种操作系统中,程序在开始读写一个文件的内容之前,必须首先在程序与文件之间建立连接或通信通道,这一过程称为打开文件。打开一个文件的目的可以是为了读或者为了写,也可以是即读又写。 UNIX系统中有两种机制用于描述程序与文件的这种连接: (1)文件描述符 (2)流文件描述符 和 流:相同点:1. 都是用来表示用户程序与被操作的文件之间的连接
2015-01-15 11:32:19 429
转载 tcpdump命令行抓包的常用选项
tcpdump可以获取流动在网卡上的数据tcpdump [ -AdDefIKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ] [ -C file_size ] [ -G rotate_seconds ] [ -F file ] [ -i interface ] [ -m module ] [ -M secret
2015-01-08 13:14:20 1537
转载 Linux系统编程--read/write
转自http://blog.163.com/bowen_tong/blog/static/20681717420126601118551/read函数从打开的设备或文件中读取数据。#include ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文
2014-12-30 11:38:21 494
转载 如何查找Linux文件 存放在哪(地点) locate find whereis which 命令
1、使用locate命令。locate命令基于数据库查找,第一次运行时需首先运行updatedb命令更新数据库。语法:locate 例如查找stdio.h文件在如:[python] view plaincopy[root@localhost sys]# locate stdio.h /usr/include/
2014-12-29 17:20:37 875
转载 ubuntu下使用vi是方向键变乱码 退格键不能使用的解决方法
今晚上课,老师给我们每人分配了一台ubuntu虚拟机,说要做实验用。我当然是没关系,我最喜欢的就是ubuntu了,但是对于一些对linux不熟悉的同学来说,也许是个很艰难的实验过程了。老师要我们在ubuntu下编辑一些文件,这就涉及到了vi这个编辑器了。在ubuntu下,初始使用vi的时候有点问题,就是在编辑模式下使用方向键的时候,并不会使光标移动,而是在命令行中出现[A [B [C [D之类
2014-12-23 10:40:29 517
转载 C语言中的逗号操作符
在C语言中,“,”的用法有两种:一种是做分隔符,另一种是作运算符。在变量声明语句、函数调用中,逗号是做分隔符用的,例如:int a,b,c;scanf("%f%f%f",&f1,&f2,&f3);C语言还允许用逗号连接表达式。例如:x=5.6,y=2.1,10+x,x+y,这里用3个逗号运算符将4个表达式连接成一个逗号表达式。 逗号表达式的一般格式如下:
2014-12-22 15:41:13 1317
转载 malloc、free与内存碎片
malloc和free大量使用后回造成内存碎片,那么这种碎片形成的机理是什么? 如果机理是申请的内存空间大小(太小)所形成的,那么,申请多大的区域能够最大限度的避免内存碎片呢?(这里的避免不是绝对的避免,只是一种概率) 内存碎片一般是由于空闲的连续空间比要申请的空间小,导致这些小内存块不能被利用。 产生内存碎片的方法很简单,举个例:
2014-12-05 10:53:08 539
原创 关于指针的一点理解
#include#includevoid main(){void cp(char *);char *p;cp(p);printf("%s",p);}void cp(char*p){p=(char *)malloc(sizeof(char)*100);strcpy(p,"hehe");}
2014-11-23 13:03:37 374
转载 二叉树的应用—二叉树遍历的应用
在以上讨论的遍历算法中,访问结点的数据域信息,即操作Visite(bt->data)具有更一般的意义,需根据具体问题,对bt 数据进行不同的操作。下面介绍几个遍历操作的典型应用。1.查找数据元素Search(bt,x)在bt 为二叉树的根结点指针的二叉树中查找数据元素x。查找成功时返回该结点的指针;查找失败时返回空指针。算法实现如下,注意遍历算法中的Visite(bt->dat
2014-11-07 19:15:07 743
原创 几个函数之间的简单区别
1)write和fwrite A:write用的是文件描述符,fwrite用的是文件流 B:write是将数据写入文件,而fwrite是将数据写进文件流2)read和fread A:read用的是文件描述符,fread用的是文件流 B:read是从文件中读取数据,而fread是从文件流中读取数据3)fgetc和getchar#include
2014-11-01 17:30:01 582
转载 fgetc和getc的区别
转自http://www.cnblogs.com/aqxin/archive/2011/05/20/2052069.html
2014-11-01 17:26:51 531
转载 memcpy和memmove的函数内部实现
memcpy和memmove函数的实现,需要注意memmove的覆盖问题,还有指针类型需要考虑。下面的例子中,先给出了错误的例子,而后给出了正确的例子,引以为戒!区别:两个函数都是进行n字节内存内容的拷贝,入口参数和返回参数也都一样,可是这两个函数在内部实现上是有一定区别的,这主要是因为dest内存区域和src内存区域可能有一下四种不同的情况,注意count的影响:src的
2014-10-22 16:48:21 597
转载 多角度分析为什么 Linux 的硬连接不能指向目录
译者注: 最近在看文件系统相关的,每当读到inode相关的东西时,书上或者博客上都会涉及硬链接/软链接相关的内容,于是今天专门针对硬链接翻译了几篇英文,弄懂它!一、硬链接本节翻译自: http://c2.com/cgi/wiki?HardLink在传统的UNIX文件系统中,一个目录就是一个包含关联列表的文件 。目录文件中的条目是字符串形式的文件名及其对应的唯一文件标识符--
2014-10-21 21:25:20 372
原创 Copy List with Random Pointer
/** * Definition for singly-linked list with a random pointer. * struct RandomListNode { * int label; * RandomListNode *next, *random; * RandomListNode(int x) : label(x), next(NU
2014-10-19 22:49:36 332
原创 几种内部排序算法分析
假设为10个数排序冒泡排序:冒泡排序停止交换的条件应该是有一趟排序中没有交换元素 !void Bubble_Sortt(int a[]){ inti,j,t; _Boolchange=0; for(i=9;i>0&&change;i--)//n-1次排序{ change=false;
2014-10-19 16:28:00 518
转载 strcpy函数与memcpy函数(区别及实现)
出处:http://hi.baidu.com/yuanwenxue/item/df9976994b0024db7a7f01ef
2014-10-17 14:31:02 447
转载 c++算术运算和位运算中类型转换和类型提升规则和方法
[cpp] view plaincopyclass="html" name="code">#include using namespace std; void main() { /*********************************************************************
2014-10-14 23:54:35 918
转载 linux终端的概念
转载自 http://apps.hi.baidu.com/share/detail/31982730先说pts/0吧,man里面是这样说的:ptmx and pts - pseudo-terminal master and slave,pts是所谓的伪终端或虚拟终端,具体表现就是你打开一个终端,这个终端就叫pts/0,如果你再打开一个终端
2014-10-13 23:21:51 443
转载 C语言中空格,空字符,字符数组结束符,NULL,空字符串的区别
C语言中空格,空字符,字符数组结束符的区别 2010-05-03 00:04:13| 分类: 编程|举报|字号 订阅空格符号和空字符是不一样的,在ASCII里面,空格(space)符号的ASCII码是0x20,而空字符是0x0,2个是完全不一样的2个字符呵呵.空字符一般来描述一个字符串的结尾,其实是控制符的一种,但不能理解为没有字符,应该理解为代
2014-10-12 23:34:55 2920
原创 C 静态变量
静态变量分为两种:全局静态变量和局部静态变量。全局静态变量是在函数之外定义的静态变量,局部静态变量是在某个函数(如main函数)定义的变量。静态变量存储在内存的静态存储区,静态存储区在程序的整个运行期间都存在。未经初始化的静态变量会被程序自动初始化为0(自动对象是任意的,除非被显式初始化)。全局静态变量的作用域是从定义之处开始开始到结尾,全局静态变量对其他文件是不可见的(不
2014-10-10 23:46:48 554
原创 Single Number
Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without using ext
2014-10-07 23:14:25 364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人