![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
文章平均质量分 53
普通网友
这个作者很懒,什么都没留下…
展开
-
大小尾端数据测试
参考自《程序员面试攻略》 一般也就想到 bool endianess(){ int testNum=1; char *ptr=(char *)&testNum; return (*ptr); } 作者提出用union的方法好聪明! bool endianess(){ union{ int theInteger; char singleByte; }endianT转载 2013-09-06 09:27:10 · 279 阅读 · 0 评论 -
平面上N个点求斜率最大的两个点
平面上N个点求斜率最大两个点 1.根据X将N个点排序 2.最大的斜率为max(p[i], p[i+1]) 可以证明如果有ABC三个点则AB与BC的斜率一个大于AC另一个则小于AC, k3 = (c - b)/(c - a)k2 + (b -a)/(c-a)k1; 通过反正法可以证明k3在k1和k2之间 p[i], p[i + k]斜率在(p[i ], p[i + 1]转载 2013-10-15 08:59:26 · 2537 阅读 · 0 评论 -
C/C++中Static的作用详述
1.先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c. 下面是a.c的内容: char a = 'A'; // global variable void msg() { printf("Hello\n转载 2013-10-09 20:51:47 · 122 阅读 · 0 评论 -
微软面试题:求整数随机数构成的数组中找到长度大于=3的最长的等差数列
看了网上自称是O(N^2)的算法,无语,那么复杂的空间复杂度,完全没有参考价值。 忘了在哪里看到,总之也是csdn。 还是正常的O(n^3)的算法比较给力,正常,一般情况也是能想到的 不保证以下代码正确性,思路大概就是那样 在这里用最简单的思路,时间复杂度为O(n^3) 思路:我们知道任意取2个元素,都能构成一个长度为2的等差数列,比如:a,b就等构成一个转载 2013-09-21 09:12:29 · 295 阅读 · 0 评论 -
We have 2 cases with code blocks A, B and C.哪个效率比较高
Today I was asked this question. We have 2 cases with code blocks A, B and C. These code blocks don't share any resources except an iterator (int i). Please give 3 possible reasons why case 1 cou转载 2013-09-20 17:50:02 · 405 阅读 · 0 评论 -
A string is called sstring
A string is called sstring if it consists of lowercase english letters and no two of its consecutive characters are the same. You are given string s of length n. Calculate the number of sstrings原创 2013-10-05 12:59:59 · 306 阅读 · 0 评论 -
字符串匹配-KMP,BM,Robin Karp-等
字符串匹配果然是一个很深奥的需要仔细学习的问题 截取网上对其的分析 求next数组 //代码4-1 //修正后的求next数组各值的函数代码 void get_nextval(char const* ptrn, int plen, int* nextval) { int i = 0; nextval[i] = -1;原创 2013-09-18 16:27:19 · 340 阅读 · 0 评论 -
树 中序,后续遍历的非递归实现
深度优先,广度优先的非递归实现简单,但是树遍历非递归还是有点问题。 特记录如下 void no_recur_InorderTraverse(TreeNode *root) { stack s; TreeNode *cur=root; while(!s.empty() || cur!=NULL) { while(cur!=NULL) { s.push_back(原创 2013-09-17 23:37:48 · 190 阅读 · 0 评论 -
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
文章来自:http://www.cnblogs.com/daocaoren/archive/2011/06/29/2092957.html 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。转载 2013-09-11 11:19:12 · 264 阅读 · 0 评论 -
指向const的指针,const指针
当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白了。 先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。 const int* p; (推荐) int const* p; 第一转载 2013-09-11 08:53:18 · 146 阅读 · 0 评论 -
C++编程思想 读书笔记
3.7.12.2常量转换(const_cast) 如果从const转换为非const或从volatile转换为非volatile,可以使用const_cast. 3.7.13 sizeof-独立运算符 sizeof告诉我们任何变量使用的字节数。他也可以给出数据类型的大小。(不是用变量名) sizeof(double) 注意sizeof是一个运算符,不是函数。 如果把它应原创 2013-09-09 22:06:50 · 128 阅读 · 0 评论