自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 Python语言技巧之三元运算符

    现在大部分高级语言都支持“?”这个三元运算符(ternary operator),它对应的表达式如下:condition ? value if true : value if false。很奇怪的是,这么常用的运算符python居然不支持!诚然,我们可以通过if-else语句表达,但是本来一行代码可以完成的非要多行,明显不够简洁。没关系,在python里其实还是有对应的表达方式的。   

2008-12-29 10:30:00 13723 3

原创 世界顶级精英们的人生哲学

1.别为你自己和别人下定论,你所看到听到的可能只是一面,为这个失去可能的朋友,很不值。 2.你可以有喝醉的时候,我们可以接受,但是你要明白和真正的朋友一醉才能让伤心事方休,否则,你只会是别人的谈资和笑柄。 3.如果你的个性让很多人对你敬而远之,那么你的个性是失败的,个性的成功在于能吸引,而不是能排斥。 4.别怕丢人,如果你实在不行就别怕丢人,行的话,建议你们-去追求丢人,那是一种成功的尝试,

2008-12-22 12:57:00 1197

原创 Linux内核复习之分页机制

 什么叫“页”    分页实际上是对内存的一种分层分组的管理。分页机制在内存中建立页目录、页表这样的多级结构,这就是典型的分层管理。另一方面,一个页表中每个页表项都对应着一个物理页,也就说,一个页表管理着一组连续的虚拟地址的映射情况,这就是分组机制。 地址映射过程    相信这张经典的图就足以解释了。简单分析一下,在常见的二级页表映射过程中,页目录通过高31-22位索引,这里共10

2008-10-17 16:32:00 1252

原创 Linux内核复习之分段机制

 X86分段机制     这里讲的分段指的保护模式(protected mode)下的段机制。与保护模式相对的一个概念是实模式(real mode),实模式的地址由“段基址:偏移量”组成,段基址是个16位的寄存器(CS,DS等),这样显然限制了系统的寻址空间。保护模式的地址由“段选择子+偏移量组成”,段选择子(Segment Selector)仍然由16位寄存器(CS,DS等)指定,但是其意义

2008-10-17 16:28:00 1318

原创 链表相关面试题

 题一、 给定单链表,检测是否有环。        使用两个指针p1,p2从链表头开始遍历,p1每次前进一步,p2每次前进两步。如果p2到达链表尾部,说明无环,否则p1、p2必然会在某个时刻相遇(p1==p2),从而检测到链表中有环。  题二、 给定两个单链表(head1, head2),检测两个链表是否有交点,如果有返回第一个交点。        如果head1==head2,那

2008-10-17 13:44:00 2092

原创 分配问题

问题:        把n个球放到r个盒子里一共有多少种分法?这里要考虑的因素包括:球是否区分、盒子是否区分、盒中是否允许为空? 讨论:球可区分、盒可区分、允许空盒对每个球而言都可以选择放在任意一个盒子中,并且这样得到的结果不会与其他重合,因此有rn种选择球可区分、盒可区分、不允许空盒首先将n个球分成r个非空子集(共S(n, r)种),对于每个这样的划分,它

2008-10-14 15:51:00 1715

原创 排列组合相关算法

排列生成算法 问题:        给出数字a1,a2,...an,生成所有排列。        如果用递归,这个算法运行时的递归深度会很大的,而且递归如何一个一个地返回排列结果呢。下面的算法的核心思想都是如何根据当前给定的排列P(第一个排列自然是P=a1a2...an了),然后生成唯一的下一个排列。如此循环n!次,自然获得所有的排列。 字典序法        字典序法

2008-10-13 10:09:00 1572

原创 图算法总结

图的定义:       很简单,G(V,E), V、E分别表示点和边的集合。       图的表示:       主要有两种,邻接矩阵和邻接表,前者空间复杂度,O(V2),后者为O(V+E)。因此,除非非常稠密的图(边非常多),一般后者优越于前者。图的遍历:       宽度遍历BFS(start):    (1) 队列Q=Empty,数组bool visited[V]={false...}. Q

2008-10-08 15:22:00 11028 1

原创 检查数组是否有重复元素

问题:        [0, n-1]的数存在一个整数数组A[n]中,判断A中是否有重复元素,要求使用尽可能少的空间。算法:(O(1)空间复杂度,O(n)时间复杂度)       一次遍历A,对于当前元素A[i],那么对数组中下标为A[i]的元素自减n。若无重复元素,那么一遍处理后,A[i] = A[i]-n,取值范围恰在[-1, -n]。所以对处理后的A一遍扫描,如果有正数说明有重复。     

2008-10-08 15:07:00 2437 1

原创 循环赛日程安排问题

问题描述:    设有n(n=2^k)支队伍参加循环赛,循环赛共进行n-1天,每支队伍要与其他n-1支队伍比赛一场,且每支队伍每天必须比赛一场,不能轮空。试按此要求为比赛安排日程。 算法思路:   我们先安排奇数下标位置与偶数下标位置之间的比赛,就有n/2场,方法很简单,team[2k]=2k,所有奇数号组成一个序列[1,3...n-1],然后循环移动n/2-1次(比如第2个序列就是[3,

2008-10-04 09:58:00 3214 1

原创 关于++运算符

#include int p = 1; int foo(){     printf("p=%d/n", p);     return 0; }  int main() {    int x = foo() + (p++) + foo() + (p++) + foo();    printf("x=%d/n", x);    return 0; }  

2008-06-12 14:09:00 942

原创 C++,C#,Java关于同样方法的默认语义

Java代码:class B{ public void f(){ System.out.println("B.f()"); }};class D extends B{ public void f(){ System.out.println("D.f()"); }};public class Test{ public static void ma

2008-05-31 20:27:00 909

原创 遍历矩阵格问题

M(列)*N(行)的格子,从左上到右下有几种走法?某个点(m,n)不能过有几种?某个点必须过有几种?  设想移动过程为从格子左下移动到右上,那么每一步骤或者向上(记为0)或者向右(记为1)。 一次完整的移动就是一个01序列,其中0和1的总数分别为N与M。这样,第一问就转换为满足这样的01序列共有多少个,答案显然是   必须经过(m,n)处:可以将移动分为

2008-05-28 18:37:00 930

原创 矩形相交判定

 判断两个矩形 (minx1, miny1, maxx1, maxy1)与(minx2, miny2, maxx2, maxy2)是否相交?解:记Lx=(maxx1-minx1+maxx2-minx2)/2或者Ly=(maxy1-miny1+maxy2-miny2)/2计算给定矩形中心距离tx, ty:如果tx=Lx或者ty= Ly,则相切;如果tx否则,相离

2008-05-27 22:32:00 942

原创 求排序二叉树中间节点

给定一棵排序二叉树,求出值大小居于中间位置的节点。使用两个指针p1和p2,p1指向树的最小节点,p2指向树的最大节点p1在树上做前序遍历,p2在树上做后续遍历,每次p1和p2都移动一步,这样,最终或者p1与p2重合(树的节点数为奇数个),或者p1与p2称为父子关系(树的节点数为偶数个),此时我们便找到中间节点。

2008-05-27 22:24:00 1409

原创 求数组中第二大值

对数组a[N]:取a[0],a[1]中较小者记为t,较大者记为s从a[2]遍历至数组尾部  (1) 如果a[i]   (2) 如果a[i] > t    (2.1) 如果a[i]     (2.2) 如果a[i] > s,t=s,s=a[i]时间复杂度O(n)

2008-05-27 18:10:00 865

空空如也

空空如也

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

TA关注的人

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