- 博客(233)
- 资源 (2)
- 收藏
- 关注
原创 动态规划之最大k乘积,编辑距离,k好数,节点选择,背包问题
这几天真是闲的没事做了,都不知道干什么了,把自己之前的动态规划代码整理一遍,现在写代码也有了自己的风格。直接复制上去自己看吧,也懒得解释了1.最短编辑距离,里面用到了重定向读写#include #include #define MAXLEN 100#define min(a,b,c) (((a<b?a:b)<c)?(a<b?a:b):(c))int c[MAXLEN][M
2016-10-12 20:20:47
661
原创 整理之前写过的小代码,测试代码
1.对于这个程序测试环境是redhat7.0,编译器用的是gcc,主要是熟悉一下如何使用linux下的这些函数,如何使用man自己查阅#include #include #include #include void print_week(int ); //输出周void print_annimal_year(int); // 输出生肖年void print_we
2016-10-08 11:34:35
608
原创 关于面试中的TCP和UDP怎么用自己的话给面试官说
从春招也就是2.19开始面试,到现在的9.27签了三方,终于可以休息下了,也算是对自己15年的读书生涯有了一个交代。这一篇的话我就讲讲如何给面试官说TCP和UDP,而且也会让面试官感觉你对这一块有自己的理解,而不是直接背网上的TCP和UDP的区别。 一般面试官都会问TCP和UDP的区别,这个很好回答啊,TCP面向连接,可靠,基于字节流,而UDP不面向连接,不可靠,基于数据报。对于连接而言呢
2016-09-28 12:13:27
8565
4
原创 腾讯2017年给定一个整数判断有几个质数对
这个题目意思也就是如果输入10 ,那么就有(3,7),(5,5)两个质数对,因此输出就是2,其实这个思路很简单,就是先找出质数,并存储,然后在遍历存储下来的质数,但是用整数数组存储太浪费。就用C++的bool数组吧。里面也用到了之前的埃氏拉。 #include using namespace std;bool f[1009] = {};int main(int arg
2016-09-13 11:05:46
1127
原创 搜狗的2017笔试题距离之和
今天下午3点答了搜狗的笔试题目,总体感觉还不错,有一道编程编程题目,并没有做到100%全过,下来有时间补上,求距离之和,题目定义两个大于2的偶数之间的距离,为这两个数之间质数的个数,从小到大输入n个大于2的偶数,输出所有两两之间距离的总和。样列输入: 第一行代表输入偶数的个数34612样例输出:6刚开始拿到这个题目自己第一感觉就是先开辟一个额外
2016-09-12 21:59:31
1360
2
原创 整理桌面,杂碎的常用的知识点
虽然两个电脑屏幕,但是都用成这个样子了,差点快满屏幕,今晚闲来无事,整理整理桌面杂碎的知识,最近也在积极的准备面试中,家都回不了。桌面成这个样子了,敢看?等等面试结束了,好好整理一番。桌面上的tcpdump,linux下的抓包分析数据神器,简单好用比windows下的wireshark好用多了;对于什么时候会接受到一个rst包呢,服务器都没开这个端口
2016-08-14 21:18:57
682
原创 shell脚本几个练习
1编写一个shell脚本,它把第二个位置参数及其以后的各个参数指定的文件复制到第一个位置参数指定的目中。#! /bin/bashdir=$1shiftfor i in $* do cp $i ${dir}/ done 2.编写一个shell脚本,显示当天日期,查找给定的某用户是否在系统中工作。如果在系统中,就发一个问候给他。#! /bi
2016-06-26 22:17:16
9178
1
原创 linux 的网络编程(一)
决定在把linux网络编程好好的扎扎实实看一遍,环境,putty跑服务端,虚拟机上redhat7.0的shell的netstat查看,windows的7个cmd跑客户端。经过测试之后对基本的这些函数有了更深的了解。还涉及到很多的细节,socket(),bind(),listen(),accept(),connect(),inet_aton()函数等等就不说了,没意思,网上很多文章都写这个的用法的。
2016-06-07 00:11:02
520
原创 大数相加,大数相乘和100!
自从腾讯HR面试被刷后,也就不想找实习了,记住教训吧,没事还有九月份,现在和其他人几个人都加进去了linux3+1实验室,暑假好好干一个暑假。 大数相加虽然之前写过,但是现在写代码起码也应该有自己的风格和规范了,其实大数相加和大数相乘的思路很简单,int我们现在一般用的都是4个字节,最大也是2147483647,简单说21亿,但是更大的数字就从不下了,因为我们可以用数组来模拟大数相乘和大
2016-05-26 00:57:04
530
原创 关于linux的读写锁
这次当我给面试官提及到读写锁的时候,详细问了我的读写锁,我知道怎么回事,用法,但是具体没实践过,听过的还是不要给面试官说了,不然又给自己挖坑。 下面这个程序就是读写锁的程序,分别有两个读者,两个写着,当写着输入end的时候并且读者读到程序运行结束,里面的读写锁是动态初始化,最后用pthread_join(),主要主线程等待子线程运行完她才可以结束。对于现在锁,我才感觉到都是有套路的,都被玩
2016-04-07 20:09:00
3504
1
原创 称量硬币 和 2016腾讯的蛇形矩形
腾讯2016蛇形矩阵C语言版实现,认真分析一下也不难,找到规律 #include #include //全局变量int count = 1;void do_snack(int **matrix,int n);void write_num_to_snack(int **matrix,int n,int start);void print_snack(int **matr
2016-04-06 20:29:57
805
原创 linux 线程边学边总结
今天在linux敲代码的时候突然遇到__LINE__当时是懵逼的,经过查询之后那是linux下的宏定义,一般有这几个: __LINE__ 代码执行到多少行 __FILE__ 文件名 __DATE__ 日期 __TIME__ 具体时
2016-03-24 01:06:49
515
转载 epoll的高效实现原理
epoll的高效实现原理原文地址:http://blog.chinaunix.net/space.php?uid=26423908&do=blog&id=3058905 开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和po
2016-03-23 00:26:22
473
原创 面试中遇到的IO调度
发现在自从二月就没写过博客,然后二面中问道了我IO调度,当时也就在边上闲扯淡,之后百度了一下,感觉是跪了,面试官问的是IO调度的算法,而我说的是磁盘调度算法,虽然有点相似还是不一样好吗?博客里面一部分是百度,仅仅为了整理面试的问题。IO调度算法链接IO调度算法IO调度算法存在的意义有两个:一是提高IO吞吐量,二是降低IO响应时间。然而IO吞吐量和IO响应时间往往是矛盾的,为了尽量平衡这两者
2016-03-21 18:23:14
1556
原创 进程间通信(IPC) 之 共享内存 和 闲扯其他一些东西
其实,写这篇文章是带着多么激动的心情,终于没有bug这一篇有好几处我还要在加强练习。在进程间通信(IPC),函数好多,好多都没有记住,查man的时候就特别烦,一大段一大段的英语,看的一个头有8个大,先来谝谝共享内存。 先说说我理解,对于共享内存,我感觉这效率还是很高的,因为内核基本上说不干预,说的最好(IPC之中)
2016-01-19 00:47:07
960
2
原创 给kill给一个小脚本
好长时间都没有写博客了,关键最近真是累啊!这系统编程这一块,之前的功底比较差,最近学习起来真是吃力,勉强勉强才可以应付过来,今晚休息之余来个小脚本,练练手,在linux下我认为还是要会写脚本的。 平时我们在执行程序的时候,总是难免ctrl + c可是有时候这个SIGINT被屏蔽,那么你就终止不了,除此之外,还有一些服务,后台跑的(nginx,httpd,vsftpd),我要干掉ta
2016-01-14 22:02:44
1688
原创 linux的read,write
本来都不想写了,距离回宿舍还有一点时间,快速写一篇,因为从这里就要进入的系统编程,我们直接对内核进行调用,而对于那些高级语言的人们,他们是通过了类库,然后接触内核,这一块也要好好学习,今天入入门。 我现在写代码都有自己的规范,变量每个写一行,不管怎么样都进行初始化,尽量不要出现魔鬼数字,比如返回-1,-2,直接用宏定义。fd文件描述符。我感觉这里的知识多的很,而且很细,想文件描述符
2016-01-02 22:20:22
747
原创 好用的valgrind
对于这个valgrind,目前我仅仅使用了它的检查内存是否泄漏的问题,我们经常在写代码的时候,如果只malloc开辟了空间,而忘记free释放空间的话就会内存泄漏。如果用这个工具的话,那么就简单多了。 valgrind的官网下载http://valgrind.org/downloads/ 网上也有很多安装教程,我的主机是centos6.5。我在这个上面安装成功了。
2015-12-22 09:28:50
905
原创 广义表的相关操作
这次是广义表,概念也不想多说了,网上很多,重复么啥意思,这次广义表的创建让我感觉几点处理的很巧妙,比如判断广义表的括号是否匹配呢,我的第一反应就是栈呢,因为之前写过逆波兰表达式,就是用栈处理了括号,但是这次就是用一个变量flag处理了,遇到左括号++,遇到右括号--,判断最后是否为0。 也许把广义表处理的最麻烦的地方哪个就是字符串了,把字符串专化成真正的广义表,也就是真实的存
2015-12-14 20:25:03
1322
原创 正确的二分查找
之前原来自己写的二分查找是错误的,估计大多数人写的二分查找也和我写的差不多吧,下面这链接是我之前写的错误的二分查找,现在来正确的,这个还是在july的树上看到的,感觉这个人特别厉害。 关键的一步还是mid = left + ((right-left)>>1);因为如果我们用两个很大合理的数相加,那么就会越界啊,这里巧妙的应用的位运算。 还有一点,尽量不要什么魔鬼数字,就是
2015-12-11 10:11:10
783
原创 动态数组的实现 及 迭代器
今晚把之前的动态数组敲了一遍,感觉还是有点生疏啊,都忘记的差不多了,开辟一个void **data的动态数组,里面存的是void *,这样也实现了通用性,然后呢里面用到了函数指针,写了接口,用户可以自己写,比如void (*free)(void *ptr),还有迭代器,可以遍历任何东西,今晚先用迭代器遍历这个动态数组,为了方便,我全部用存成整数,简单方便。 其实,这个里面呢,还有一
2015-12-10 21:13:39
1772
原创 双端链表实现hash(哈希)
hash表又称为散列表,很多的地方都用到了这个东西,js中的对象,java中的键值对,python中的字典,hash结合了数组和链表的优点,在查找,存储有很大的优势。以我的理解来说,通过相应的键,找到相对应的值,数组的优点快啊,存储采用链表,节省空间,插入删除方便,这次我用整数模拟一下,简单的hash函数,仅仅对数字进行取余,把取余相同的放在一个区域里面,也就是说,一个键可以对应多个值 h
2015-12-09 18:39:25
1448
原创 双端链表实现队列
这次实现队列还是用到了双端链表,和上篇的一样,也是双端链表实现的,简单么,下面写好了,上面直接调用。现在redis竟然是用C语言写的,而且底层实现也是双端链表,这是非常重要滴 queue.h文件#ifndef _QUEUE_H_#define _QUEUE_H_#include "tools.h"typedef struct Queue{ Dlist *dlist; /
2015-12-09 17:59:51
742
原创 用双端链表实现通用栈
这篇 还是双端链表基础上实现,这里面只是在套组件,套写过的东西,就需要重新组合一下而已,也许以后在公司也就是这个样子,感觉C语言越来越强大了,还需要好好搞搞C语言,关于栈,不想多BB,感觉说啥概念没意思了,也就是上代码,这是如何实现的 stack.h文件#ifndef _STACK_H_#define _STACK_H_#include "dlist.h"#include "
2015-12-09 17:48:58
922
原创 双端链表
这次的双端链表还是比较通用的,因为前面的链表没有一点通用行,我的数据类型就仅仅在int的范围,这次通用的话,就可以存储各种数据类型,double,char,int , 图,二叉树,等等,起始只需要一个void *既可以搞定,因为这个可以指向任意的数据类型。 双端链表头文件的声明dlist.h#ifndef _DLIST_H_#define _DLIST_H_#include "too
2015-12-09 17:40:10
916
原创 带有控制信息的单链表
上一篇写了单链表,如果认真敲了代码,就可以看出里面从在很大的问题,想要删除尾部节点,必须还要遍历的链表,这时间复杂度也太高了吧,因此这篇会设计一个带有控制信息的单链表,一个指针指向链表的头部,一个指针指向链表的尾部,一个int变量记录链表节点的个数,这样就方便多了,主要看操作,哈哈,(最近get到主要看气质,也许长的丑才看气质,哈哈)。头文件声明ctr_list.h#ifndef _CTR
2015-12-09 17:31:00
631
1
原创 单链表的一些操作
在前一篇写了工具函数,以后的每篇几乎都会用到tools.h文件,如果在linux下编译就需要这样,举例 gcc list.c tools.c main.c -o main 把这3个文件编译链接成可执行文件main,linux下./main就可以运行了。 还是在开始提一下吧,为什么在销毁链表的时候需要用到双重指针,因为不仅要释放指针所指向的这快区域,还是把该指针释放了,因为free
2015-12-09 17:19:26
654
原创 链表开始前的准备 之 tools(工具)、包裹函数
学习链表这么长时间了,趁着今晚有时间,感觉总结一下,这次真感觉跟着驰哥学习了不少的东西,对于这次链表,终于有了真正意思上写C语言的感觉吧,虽然买了C语言的接口与实现,不过现在没时间看,等链表这一块完全学习完在看吧。C语言也可以写的很漂亮的,组件化思想,也就是模块化,写一个东西就在里面套、套、套模块,有点像玩积木的感觉。不过开始写链表之前,先来一篇这个东西tools,简单说就是写一个工具,方便其他文
2015-12-07 19:23:27
637
原创 搞搞阿里云 及 centos7.0 成功安装docker
说到这个阿里云,感觉这个真的不错,对于学生也比较便宜,6个月也就60元,也是非常的划算的,我在上面可以装各种镜像,如果弄错的话,重新初始化,再也不用把自己的电脑当实验品了,装坏了还要重新装系统。 接下来就开始centos7下docker的配置吧1 首先先看看你的系统不合适,直接进行安装 uname -i uname -r yum insta
2015-12-03 15:19:55
1373
原创 关于 centos下docker安装中遇到的问题 小小吐嘈一下下
昨晚也就是11月的最后一个晚上,突然意外看到docker,感觉这货还不错,于是就搞了一波,但是很多人好人多都是在ubuntu下搞的,而且内核版本也符合的docker的配置环境要求,直接无脑的apt-get一装,就开始用了,交互式的,守护式的,各种秀操作。(ps:我并对ubuntu没有恶意,只是仁者见仁,智者见智,喜欢redhat和centos罢了) 说道这里,我还是简单说说d
2015-12-03 14:37:02
1178
转载 Python性能鸡汤
在oschina看到此文,甚好!算是给自己留档吧。http://www.oschina.net/question/1579_45822-----------------------------------------------------------阅读 Zen of Python,在Python解析器中输入 import this. 一个犀利的Python新手可能会注意到"解析
2015-11-27 10:46:53
590
原创 python函数日积月累 basestring()、any()、all()、callable()、divmod()
python强大,超多的内置函数,还是每天需要积累一点点,今天我看了basestring()、any()、all()、callable()、divmod()这几个内置函数,下面详细说明下: 1 basestring() 被用来判断一个对象是否为str或者unicode的实例>>> isinstance("hello,world",str)True>>> is
2015-11-25 20:01:47
733
原创 nginx查看并行连接数配置 及 allow 、deny
这两天搞了几波nginx,真心是心力憔悴啊,有的nginx照着人家都配置不出来,然而我希望在linux下配置东西的时候,可以照顾一下学基础的人,对刚刚入门的我来说,看了几篇文章都不从最原本的开始,一运行就是bug,也是心累,废话也不多说了,我的意思是我配置的时候会按最基础的来,会站在初学者的角度去写博客。 linux环境: centos6.5 nginx 1.8
2015-11-25 07:58:17
8105
1
原创 处理json注释 之 小搞python正则表达式
最近字符串的时候经常需要用到正则表达式,是时候需要学习一下正则,毕竟强大处理字符串能力,我先做了一个很简单的处理json的注释,因为在粘贴复制一段代码,总是有注释,这就用不了啊,一个个删除就是太扯淡,我才不想这个样子,用python处理一下就可好。处理json字符串之前的代码 { "Result":true, //标识请求是否成功 /* I am
2015-11-18 12:50:00
3082
1
原创 python中string字符串模块
现在python人家都更新到3.x了,我看了一本python1.5的string模块讲解,其实看看这些也不错,知道这些都是怎么来的,先把早期的演示演示,压压惊,冷静冷静,这个string模块就是这么用的。 import stringstr = "I love you ?"print 'upper' print string.upper(str)prin
2015-11-17 22:01:36
1686
转载 Python特殊语法:filter、map、reduce、lambda
Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力!filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:>>> def f(x): return x % 2 !=0 and
2015-11-16 22:33:55
442
原创 python琐碎的知识积累,闭包
1. 以下的代码的输出将是什么? 说出你的答案并解释。 class Parent(object): x = 1class Child1(Parent): passclass Child2(Parent): passprint Parent.x, Child1.x, Child2.xChild1.x = 2print Parent.x, Child
2015-11-16 15:13:18
541
原创 身份证验证、字符串删除、扩展字母、空格转化、位运算
1 这个身份证验证比较简单,没有区号的,仅仅判断18位的身份证和年月日正确与否,但是里面用到的思想很好呀,我自己做好的时候就是傻傻的用if,else无限判断我感觉自己都烦,驰哥说只要把对应的润年和平年写进数组,这就一下子简单,也就是空间换时间,我感觉这很划算啊,毕竟速度快了显示在 if 和 else 中有一大堆判断的身份证验证#include #include #include
2015-11-13 12:39:07
657
原创 实现字符串的一些常用字符串函数
1 size_t my_strlen(const char *string); // 字符串长度 size_t my_strlen(const char *string) // 字符串长度{ int len = 0; const char *str = string; if(string == NULL){ return len;
2015-11-10 20:57:17
413
原创 memmove() 和 memcpy()
memcpy()和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下:void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst, const void *src, size_t count); 他们的作用是一样的,
2015-11-08 20:37:13
874
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅