自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Coder

渴望变得优秀,变得强大

  • 博客(72)
  • 收藏
  • 关注

原创 leetcode36

bool isValidSudoku(vector<vector<char>>& board) { const int SIZE = 9; for( int row = 0; row < SIZE; row++ ){ for( int col = 0; col < SIZE; col++ ){ if( board

2016-08-27 18:55:13 645

原创 leetcode009

class Solution {public: bool isPalindrome(int x) { if( x<0 ) return false; int div=1; int low= 0, high = 0; int y=x; while( x/div >= 10 )

2016-08-27 17:28:06 537

原创 用爬虫解决生活问题

前几天有一个妹子让我帮她写一个爬虫。问题背景是有几个产品,每个产品对应一个excel。我要实现的功能是读取产品相关网页上该产品的净值,然后写到Execl中去。问题很简单无非就是正则表达式的读取excel,不过有一点需要注意的是现有的几个python Excel插件功能都不是完善,有的只能读excel不能写,有的能写,能读,但是不能修改(可以理解对文件进行追加操作)。不过有一个最强大但是略为繁琐的工具

2016-08-09 21:59:40 1115

原创 浅谈依赖注入

最近在学习Spring和Angularjs,在学习的过程中依赖注入这个名词反复出现在各个文档和链接当中,迫使你不得不去了解下这个概念。依赖注入(Dependence Injection, DI)又和控制反转(Inversion of Control, IoC)有关。可以说DI是IoC的一种设计模式,按照DI的思路可以实现IoC。 其实这个东西没那么神奇,几句话就能讲清楚的事情。我看了中文的几个资料

2016-07-26 23:08:50 663

原创 C++中的name mangling

我在这里先推荐一下陈硕的那本Linux多线程服务端编程,至于推荐这本书的原因,可以参见我在知乎上的回答。传送门 作者在C++编译链接模型精要章节中提到了name mangling。基本支持函数重载的语言都需要进行name mangling。mangling的目的就是为了给重载的函数不同的签名,以避免调用时的二义性调用。C++程序员需要感谢GNU,GNU BinUtils的工具链用起来实在是太舒服了

2016-05-21 21:31:44 14145

原创 在Linux下配置OpenCV jar

这几天在用java做一个图像处理的东西。自己是按着这个Guide来的(点我点我),上面后面的教程中用到了OpenCV,于是我就着手搭建这个环境了。 我找到了一个opencv的jar包,然后把jar包放到了我的项目里面。然后拷贝了一段demo代码。demo中一句这样的代码 System.loadLibrary( Core.NATIVE_LIBRARY_NAME );这句的功能是加载一个native的

2016-05-10 16:52:38 5102 1

原创 如何在控制台下画出一个正线曲线

昨晚一个同学在网上找了一段傅里叶变换的代码,但是需要验证代码的正确性。于是就打算生成一个正弦波。他找到了我,代码本身是没有难度的,因为基本任何语言都有math库,库中肯定有三角函数。我当时想,能不能在Windows的控制台下画出一个正弦波。需要解决的问题只有一个,如何控制Console的光标位置。所幸的是,Windows提供了这样的API给我们使用。在windows.h的头文件中,有这样几个函数。H

2016-05-09 19:48:36 1729

原创 emacs24.x自动补全配置

我相信现在几乎没有程序员在用不支持自动补全的编辑器或者IDE。emacs作为神的编辑器自然必须具备这个功能。不过这个功能并不是emacs自带的,需要我们手动配置。网上配置的教程有很多,如果你用的是24以后的版本,那么我的这篇文章可能会对你有所帮助。重要的事情说三遍针对24.x之后的版本针对24.x之后的版本针对24.x之后的版本emacs的自动补全需要下载一个auto-complete的扩展。我在这

2016-04-24 21:50:30 4476

原创 Google Protobuf Guide

首先,这只是一篇Protobuf的Guide,没有任何高级内容。ProtoBuf是什么?我只能说,你写过代码就会明白。它和序列化对象关联很紧密,类似功能的工具很多。如xml Json等都是用来序列化对象的。至于序列化对象是什么?还是那句话,你写过代码就会明白。我的语文不好,不能给大家描述清楚。我个人理解就是把对象存储在文件里。举个简单的例子,我们有一个Person类,表示一个人。如下:class P

2016-04-20 11:51:17 496

原创 一次失败的面试

前几天,承蒙一位大龄哥哥看得起。让我去他所在的一家公司面试,去之前自己就已经定下目标了,坚持和面试官交谈10分钟就算胜利。没想到最后竟然坚持了2个半小时,然而这并没有什么卵用。题目并不难,现在看来,我紧张是我这次失利的一部分原因之外,自己在纸上写代码的能力不足也是一个方面。题目只有三道,有一个是非递归遍历遍历二叉树。这个的确是我写不出来,如果你不提示我用栈或者队列实现的话。剩余的2道都是一个正常的程

2016-04-19 18:39:33 575

原创 leetcode003

问题是找出一串字符串中最长的且没有重复字符的字符串,思路上也很简单。 设数列为: A[123⋯n]A\begin{bmatrix} 1 & 2 & 3 & \cdots & n \end{bmatrix} 设发生重复的位置为pp,重复的字符第一次出现在位置pp处,则有 1≤p<q1 \le p < q 可以证明,下次搜索时只需要搜到p−1p-1处即可,至于证明,用反证法证明即可,很简单。

2016-04-02 16:44:05 393

原创 LeetCode002

传送门/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode*

2016-03-19 18:39:45 450

原创 LeetCode001

传送门class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int temp; vector<int> v; for(int i=0;temp=0,i<nums.size();i++){ temp=nums[i];

2016-03-19 18:37:04 462

原创 new................未完待续

new表达式用于动态创建对象,与此对应用于销毁对象的还有delete exprssion,有点类似于C中的malloc和free吧。 C++primer上说,当使用一条new表达式的时候实际上有三步:创建内存(调用一个 operator new 或 operator new[ ]的库函数),调用构造函数,返回内存地址。这里面能拿出来说的就第一步,调用operator new的库函数。 其实就是一

2016-03-07 19:25:05 343

原创 简单的事情复杂做

昨天要统计下我们班那些人的毕设报告没有交。提交名单是提交在一个excel里,其实可以用excel自带的sort来查一下就行了。不过为了装逼一把,我就打算写个程序来做这件事情。最正常的应该是用cpp来写了,因为我最熟悉这个。不过打算挑战下自己,我就写了四个语言版本的。c++/java/python/go 花时间最多的就是go的版本,感觉go和C差别还是有点大的。其它三个给我的感觉都是C家族语言。代码

2016-03-06 08:09:16 826

原创 反转链表

今天翻了云风大大的微博,看到他说他给应届生出了一道笔试的编程题,结果7 8 个人没有一个能正确地写出来。于是我就试着写了下,不过发现逻辑很简单呀。  //保存后继节点//更改当前结点的next(指向前一个)//设当前结点为前驱节点//设后继节点为当前结点//loop#include #include struct Node;struct Node{ int data; s

2016-03-05 18:14:33 425

原创 用VBA来完成任务

Sub auto()'' auto 宏'Dim ws_src As WorksheetDim ws_dst As WorksheetDim ws_addr As WorksheetDim i As IntegerDim j As IntegerSet ws_addr = ThisWorkbook.Worksheets(4)Set ws_src = ThisWorkbook.

2016-03-05 18:05:43 2460

原创 PAT1013

传送门用DFS搜索一下,然后看需要搜几次,这一步可以得到有多少个独立的区域。设为N,则所需要的高速路数为N-1#include #include using namespace std;const int MAX=1001;int N,M,K;int edge[MAX][MAX];int concern[MAX];int visited[MAX];bool dfs(int

2015-12-13 12:46:14 494

原创 PAT1012

传送门这是一道结构体排序问题,只不过排序的条件有点特别,但是我们可以传一个谓词给函数。还有一个坑就是注意俩人排名相同的情况,比如有两人并列第一,实际上分数第二的人排名就是第三了。/* *********PAT1012***************** *********Author:markliang*********/#include #include #inc

2015-12-13 12:42:58 598

原创 PAT1011

这道题很简单,就不用说了。传送门#include #include #include using namespace std;const int N=3;map m={ {0,'W'}, {1,'T'}, {2,'L'}};struct valAndIndex{ double val; int index;};int main(int argc,char *

2015-12-09 13:25:44 469

原创 PAT1010

这道题是最恶心的一道了,通过率也是最低的一个,只有0.08。是一个进制转换的问题,不过有几个坑需要注意下。第一是数字的位数是不多于10位数,但int不行,所以数据类型必须用long long类型来做。第二个就是进制radix是没有上限的,所以这里需要做好剪枝。用二分传送门#include #include #include using namespace std;typedef

2015-12-09 13:23:46 403

原创 PAT甲级1009

传送门这道题换成了多成了多项式的相乘,因为指数最大是1000,所以相乘后指数最大值为2000。题目中内存限制为65536KB,所以2000X4/1024是不会超出内存限制的。#include #include #include using namespace std;const int MAX=2001;double array[MAX];double result[MAX];

2015-12-06 09:35:55 732

原创 PAT甲级1008

1008传送门这道题很简单,比编程之美上面的都简单,所以也没什么好说的。直接上代码就是#include using namespace std;const int UP=6,DOWN=4,KEEP=5;int main(int agrc,char **argv){ freopen("num.txt","r",stdin); int N,previous_layer,total

2015-12-06 09:32:09 645

原创 PAT甲级1007

问题链接:http://www.patest.cn/contests/pat-a-practise/1007实际上就是最长公共子序列问题,不过问题有两个小坑需要注意下。特殊情况1:整个序列都是负数特殊情况2:最大公共子序列和不止有一个,这个时候也很简单,倒着来就行。看我代码就会明白#include using namespace std;class MSS{p

2015-12-04 22:32:11 1095

原创 PAT甲级1006

传送门这道两个sort就可以解决问题了,多亏了C++中string自带的比较函数。#include #include #include #include using namespace std;struct info{ string ID_number; string Sign_in_time; string Sign_out_time;};bool unlock(in

2015-12-04 21:02:05 599

原创 PAT甲级1005

传送门这道题很简单的了,,也没什么好说的。#include #include #include using namespace std;map IntToString{ {0,"zero"}, {1,"one"}, {2,"two"}, {3,"three"}, {4,"four"}, {5,"five"},

2015-12-04 20:59:44 559

原创 PAT甲级-1004

传送门题目大概意思是,求出一棵树中每一层叶子节点的数量,叶子节点即为没有任何子树的节点。我刚开始摸错门了,想着定义一个tuple类型,后来又想建一棵树,不过后来发现思路太繁琐了。到了网上查了以后,发现BFS就可以解决问题了。#include #include #include using std::string;using std::cin;using std::cout;usin

2015-12-04 20:55:45 1219

原创 PAT甲级1003

传送门仔细分析一下,你就会发现这实际上是一道单源最短路径问题,不过有个小坑是路径可能不止一条,同时要注意这是一个无向图。我第一次弄成有向图了,可以用Dijksttra和DFS结合,可以破之。#include #include using namespace std;const int N=505;const int INF=2147483647;int num_nodes,nu

2015-12-03 19:28:19 1302

原创 PAT-甲级1002

传送门#include #include #include using namespace std;struct Polynomials{ int exponents; double coefficients; Polynomials(int exponents,double coefficients){ this->exponents=exponents;this->coe

2015-12-01 15:39:11 1220

原创 PAT甲级1001

传送门#include #include #include using namespace std;int main(int argc,char **argv){    int n,m,sum;    vector ivec;    scanf("%d%d",&n,&m);    sum=n+m;    string src=std::to_string(s

2015-11-29 22:44:42 1258

原创 PAT1001

传送门#include int main(int argc,char **argv){ unsigned int n; scanf("%d",&n); if(n==1){ printf("0\n"); return 0; } int count=0; while(n!=1){ if(n%2==0){ n>>=1; count++; } else{

2015-11-29 18:50:25 331

原创 PAT1003

传送门因为PAT上GCC的版本是4.7.5,所以不支持C++11的正则,就用Python写了#coding=utf-8import ren=int(input())index=0;L=[]while(index<n): string=input() L.append(string) index+=1for var in L: matchObj=re.match(r'(

2015-11-29 18:19:06 355

原创 PAT1002

原题链接:http://www.patest.cn/contests/pat-b-practise/1002解决方案#include #include #include using namespace std;int main(int agrc,char **argv){ map IntToString{ {0,"ling"}, {1,"yi"}, {2,"e

2015-11-27 10:47:12 322

原创 用C++11学习多线程

有了线程,多核才有了真正意义上的并发。在单核时代,所谓的并发只是伪并发,类似于事件轮询的方式。只是轮询的周期比较快,所以对于我们人类来说看上去和真的并发没什么区别。如果把主人公换成复仇者联盟2上的快银,在他的世界观里。。。呵呵 并发毫无疑问能提高工作效率,但也肯定会有一些问题需要注意。很明显的一个问题就是,对于共享资源的访问。因为线程之间是栈私有,堆共有的。对于局部变量不会有什么问题,但如果两个线

2015-11-15 16:57:50 491

原创 计算机网络之WireShark与TCP协议

首先介绍WireShark这是一个抓包工具,对于网络工程师这是必不可少的。下载地址为:传送门 现在大概介绍一下TCP/IP协议栈。在这里我不想说OSI七层模型,因为实际上七层模型就只是一个概念,一个粗略的说明,同时实际上我们也没有完全按照那个模型来。 TCP/IP协议栈实际上包含了很多的网络协议,这其中又以TCP/IP最为知名。其中IP属于网络层协议,TCP属于传输层协议。虽然传输层协议不只TC

2015-11-07 18:25:39 767

原创 两道简单的笔试题

今天做了一个公司的笔试题,不过其实第二道我之前在编程之美上就看到过,不过考试时没写出来。第一道题如下: 有一个数组arr,长度为len;现有a,b。0=<a<=b<=len-1 请编写一个程序,找出arr[b]-arr[a]的最大值。 举例: [1015]\begin{bmatrix}10 & 15\end{bmatrix} 输出:0 这个我当时第一感觉就是有点类似最大子数组之和的。不

2015-10-17 19:17:31 1168 4

原创 python几个内建函数

今天看了几个python的几个内建函数,也都是大家熟悉的。不过因为我用的是Python3.4,所以有了一点新的发现。毕竟大部分文档都是2.7的。 第一个lambda,这个相比之前没有太大的变化。等几天写一个关于C++11 的lambda表达式的博客,大家等着哈。 python中的lambda格式是这样的:lambda arguments : expr举个例子f=lambda x,y:x+yf(

2015-10-09 21:54:45 1082

原创 反转二叉树,哈哈

这个问题因为前段时间一个大牛工程师Max Howell面试谷歌都火了,后来这家伙去了苹果。。我也不知道说什么了,谷姑娘把人家活生生的给拒了。 我今天也试着写了一下,递归版本的很easy的就写了出来。非递归版本的,自己思路一开始就错了。后来看了一篇博客,不过如此。/***** reverser binary tree *********** author: mark liang ****

2015-10-09 14:25:57 1838

原创 类型转换扯的淡

今天在看一位作者写的多线程文章时中间有这么一句代码:handle[i] = (HANDLE)_beginthreadex(arg...);_beginthreadex()这个函数返回的是一个unitptr_t类型,而handle[i]是一个句柄数组,所以需要一步类型转换 当时我想到如果用C++11定义的类型转换可能会比较好一点吧,不用那种C风格字符串了。于是很自然的把代码改成了下面这样handle

2015-10-08 22:37:46 443

原创 编程之美变形记——“49”的个数

昨天在杭电poj上看到一个道题。题目总结出来就是,给定一个正整数N,求出从1到N(包含N)之间49出现的个数。举例:如N=101则1到101之间101个数中,49出现一次。同时,409,4009(这样的数字不合法)。看到第一眼就想起来编程之美2.4有一道求“1”的个数的题目,这道题其实就是把“1”换成了49。我第一眼想到的是用49进制,不过仔细考虑一下之后是不合适的。然后想了一个小时左右没想出来。虽

2015-09-30 19:45:06 548

空空如也

空空如也

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

TA关注的人

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