Hackbuteer1的专栏

走别人没走过的路,让别人有路可走。

程序在内存中的分布

在现代的操作系统中,当我们说到内存,往往需要分两部分来讲:物理内存和虚拟内存。从硬件上讲,虚拟空间是CPU内部的寻址空间,位于MMU之前,物理空间是总线上的寻址空间,是经过MMU转换之后的空间。 一般我们所说的程序在内存中的分布指的就是程序在虚拟内存中的存储方式。 从

2011-09-18 11:03:26

阅读数 12423

评论数 3

POJ 2312 Battle City 优先队列+BFS

相信坦克大战大家都玩过吧,本题就是根据这个游戏设计的。坦克要从起点(Y),到目的地(T),坦克不能通过钢墙(S),河(R),可以在空地在行走(E),射击破坏砖墙(B),射击砖墙时不行走且花费一个单位的时间,在空地上行走时也花费一个单位的时间。求坦克从起点到目的地最少花多少时间,不

2011-08-25 22:40:34

阅读数 4965

评论数 1

程序员面试100题之九:求子数组的最大和

题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。        例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,...

2011-08-17 10:59:50

阅读数 13098

评论数 6

程序员面试100题之八:不要被阶乘吓倒(二进制表示中最低位1的位置 )

阶乘(Factorial)是个很有意思的函数,但是不少人都比较怕它,我们来看看两个与阶乘相关的问题: 1、 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。 2、求N!的二进制表示中最低位1的位置。         有些人...

2011-08-15 22:34:20

阅读数 10697

评论数 5

程序员面试100题之七:最长公共子字符串

子字符串的定义和子串的定义类似,但要求是连续分布在其他字符串中。比如输入两个字符串BDCABA和ABCBDAB的最长公共字符串有BD和AB,它们的长度都是2。       最长公共子字符串共有两种解决方法,下面具体说说我的思路 方法一:      Longest Commo

2011-08-14 22:46:29

阅读数 78418

评论数 9

程序员面试100题之六:最长公共子序列

题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。       例如:输入两个字符串

2011-08-14 22:44:29

阅读数 28017

评论数 9

程序员面试100题之五:二叉树两个结点的最低共同父结点

题目:二叉树的结点定义如下:     struct TreeNode    {               int m_nvalue;              TreeNode* m_pLeft;              TreeNode* m_pRight; }

2011-08-14 22:28:48

阅读数 5770

评论数 3

程序员面试100题之四:求1+2+...+n

题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。         分析:这道题没有多少实际意义,因为在软件开发中不会有这么变态的限制。但这道题却能有效地考查发散思维能力,而发散思维能力能反映出对编程相关...

2011-08-14 21:56:24

阅读数 5860

评论数 2

程序员面试100题之三:不用+、-、×、÷数字运算符做加法

题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。         分析:这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。         看到的这个题目,我的第一反应是傻眼了,四则运算都不能...

2011-08-14 21:31:20

阅读数 5777

评论数 3

程序员面试100题之二:跳台阶问题(变态跳台阶)

题目1:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度。 分析:这道题最近经常出现,包括MicroStrategy等比较重视算法的公司都曾先后选用过个这道题作为面试题或者笔试题。 首先我们考虑最简单的情况。如果只有1级台阶,那显然只有一种跳法。...

2011-08-14 21:22:01

阅读数 15142

评论数 3

程序员面试100题之一:对称字符串的最大长度

题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。 分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的加强版。 要判断一个字符串是不是对称的,不是一件很难的事情...

2011-08-14 16:55:50

阅读数 18348

评论数 1

约瑟夫环的数学优化方法

首先,约瑟夫环的数学优化方法为:         为了讨论方便,先把问题稍微改变一下,并不影响原意:问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。       我们知道第一个人(编号一定是(m-1)%n)

2011-08-14 16:04:40

阅读数 9972

评论数 3

四道面试题

1、给定一个N个整数元素的数组,元素分别为A1, A2, A3....AN,每个元素分别对应一个权重W1(小于1的float), W2,W3....WN,其和为1,找出其中一个元素Ak,使所有小于Ak的元素的权重之和小于1/2,所有大于Ak的元素的权重之和>=1/2。         思路...

2011-08-13 21:24:51

阅读数 4609

评论数 4

七种方式求斐波那契(Fibonacci)数列通项

一:递归实现    使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1。 二:数组实现    空间复杂度和时间复杂度都是0(n),效率一般,比递归来得快。 三:vector实现    时间复杂度是0(n),时间复杂度是0(1),就是不知道...

2011-08-13 20:29:59

阅读数 8423

评论数 1

数据结构课程设计---------用栈来实现表达式求值

1、需求分析 设计一个程序,演示用算符优先法对算术表达式求值的过程。利用算符优先关系,实现对算术四则混合运算表达式的求值。 (1)输入的形式:表达式,例如2*(3+4)      包含的运算符只能有'+' 、'-' 、'*' 、'/' 、'('、 ')'; (2)输出的形

2011-08-12 21:40:52

阅读数 56551

评论数 6

数据结构课程设计---------最少换车次数问题

问题描述: 设某城市有n个车站,并有m条公交线路连接这些车站。设这些公交车都是单向的,这n个车站被顺序编号为0~n-1。编号程序,输入该城市的公交线路数,车站个数,以及各公交线路上的各站编号。        实现要求:求得从站0出发乘公交车至站n一1的最少换车次数。

2011-08-12 12:55:46

阅读数 4610

评论数 0

快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方! .

将4的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1(1在奇数位置),并且1后面跟了偶数个0; 因此问题可以转化为判断1后面是否跟了偶数个0就可以了。        4的整数次幂的二进制数都为 (4)100、(16)10000、(64)1000000...

2011-08-12 11:41:15

阅读数 8590

评论数 4

快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方!

将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0; 因此问题可以转化为判断1后面是否跟了n个0就可以了。         如果将这个数减去1后会发现,仅有的那个1会变为0,而原来的那n个0会变为1;因此将原来的数与去减去1后的数字进行与运算后会发现...

2011-08-12 11:13:10

阅读数 32759

评论数 19

OpenGL实现3D立体显示

由于左眼和右眼观看显示器的角度不同,利用这一角度差遮住光线就可将图像分配给右眼或者左眼,经过大脑将这两幅由差别的图像合成为一副具有空间深度和维度信息的图像,从而可以看到3D图像。         完整的实现代码如下所示: #include "stdafx.h" #inclu

2011-08-11 16:07:44

阅读数 9675

评论数 3

Main函数中参数argc,argv说明

C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv)        这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。假如你的程序是hello.

2011-08-11 15:31:43

阅读数 9219

评论数 0

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