排序:
默认
按更新时间
按访问量

C++ const

目的: 值代替。  预处理宏定义的缺点: 只做文本替换,并没有类型检查,这样会产生风险。        内存存储形式,常量折叠 常量的定义会保存在符号表中,可折叠的常量像宏一样,在预编译阶段对常量的引用一律被替换为常量所对应的值。但在运行时常量也是会被分配内存空间的。 下面的...

2016-11-24 09:32:57

阅读数:880

评论数:0

编程之美 - 分层遍历二叉树

问题描述 一棵二叉树,按从上到下,从左到右的方式进行遍历,打印它的所有的节点。 例如二叉树 输出的结果为 a bc def   思路: 二叉树遍历的方式为分层方式 每一层都可以看做是一个链表,根节点level 0可以看做只有一个元素的链表。当遍历leve...

2016-10-31 15:46:54

阅读数:787

评论数:0

编程之美 - 重建二叉树

问题描述: 给出二叉树先序遍历和中序遍历的结果,根据结果重建二叉树。 举例: 例如二叉树 先序遍历结果 为 abdcef  中序遍历结果为 dbaecf,现根据结果重构二叉树。 思路: 关键需要找到二叉树每一层的根节点和子树的长度。 例如先序遍历中根...

2016-10-30 17:16:11

阅读数:788

评论数:0

编程之美 - 求二叉树节点的最大距离

问题描述: 把在二叉树中,从一个节点到另一个节点的需要经过的边数,定义为距离。 求一棵二叉树中,距离最远的两个节点之间的距离是多少? 问题分析: 最远的节点可能出现两种情况: 1)  位于根节点下面两棵不同的子树上,例如节点C和D 2)  位于根节点下面同一棵子树上...

2016-08-27 10:45:20

阅读数:1005

评论数:0

编程之美 - 无头链表删除节点

问题描述: 一个没有头指针的链表,从其中删除任意一个中间节点(非第一个,也不是最后一个)。 思路: 没有头指针,所以无法使用遍历的方式找到目标节点的上一个节点。但可以使用的是目标节点的下一个节点。 因为当前节点是要被删除的,所以当前节点的值已经不需要被保存了,可以直接用下一个节点的...

2016-08-10 09:05:45

阅读数:798

评论数:0

编程之美 - 计算字符串相似度

问题描述: 有两个不同的字符串,通过使用一套操作方法可以把两个字符串变成一样的。 例如: 1)  "a" 和 "b"  ==>  把a变成b,或把b变成a  变化了一次 2)  "abc" 和 "ade" ...

2016-08-05 08:35:21

阅读数:870

评论数:0

编程之美 - 电话号码对应英语单词

问题描述: 电话的号码盘上一个数字对应着几个字母,一串数字对应着几种字母的组合。 现在给定一组数字,列出对应的字母的组合。 思路: 例如:4对应键盘上 GHI, 2对应键盘上 ABC 数字 42 的组合对应的字符串,用树的表现形式:               ...

2016-07-18 08:37:05

阅读数:944

评论数:0

编程之美 - 字符串移位包含

问题描述: 两个字符串s1, s2,将s1循环位移,判断s2是否被包含在其中。 例如:s1 = "ABCD"  s2= "CDA"  将s1循环位移后得到BCDA,s2被包含在s1循环位移后的字符串中。 思路 1: 将s1移位一次,然后与s2...

2016-07-11 11:08:03

阅读数:841

评论数:0

编程之美 - 只考加法的算术题

问题描述: 给定一个正整数 N,将N分解为几个(2个以上)连续的自然数的和。是否所有的数都可以做到。 例如 10 = 1 + 2 + 3 + 4。 思路: 以最简单的方式开始思考: 1) N为奇数,奇数可以分解为两个连续的自然数的和。例如 9 = 4+5。 2) 当N为偶数...

2016-07-10 09:01:50

阅读数:837

评论数:0

编程之美 - 区间重合判断

问题描述: 给定一个源区间 (x, y)和若干个无序的目标区间 (x0, y0), (x1, y1), (x2, y2), ...... (xn, yn), 判断源区间是否在目标区间内。 思路 1:分解源区间 把目标区间逐一的映射在源区间上,可以将源区间分解为更小的区间。最后看是否能...

2016-07-07 15:57:40

阅读数:1478

评论数:0

编程之美 - 数组分割

问题: 有一个没有排序,有2N个元素的数组,要求把这个数组分为两部分,分别含有N个元素,并使两个子数组的和最接近。 这里的程序主要是计算这个和的值。 比如数组 {1, 10, 100, 1000},计算后符合的分法是 {1, 1000} {10, 100} 和算出比较小的就可以了是 ...

2016-07-02 19:28:17

阅读数:989

评论数:0

SIP Call Flow - Initiation of IMS Session

这里在 IMS 网络中,手机 abc会与另一部手机xyz建立起会话。 基本步骤: 手机abc构造了一个INVITE消息,其中包含另一部手机xyz的 public user identity。所有的SIP消息需要通过P-CSCF和S-CSCF的转发手机和P-CSCF间的SIP消息...

2016-06-23 22:43:50

阅读数:1228

评论数:0

SIP Call Flow - Registration

Session Initiation Protocol (SIP) registration 注册的过程是将 IP 地址和当前用户的公共用户ID(Public user ID:SIP URI  (uniform resource identifier)) 绑定的过程。 SIP (Sess...

2016-06-21 21:13:26

阅读数:1420

评论数:0

编程之美 - 数组循环移位

问题描述: 将一个数组向右循环移位 k 位,要求只使用两个参数,时间复杂度为 O(N)。 思路 1: 采用蛙跳的方式,用当前的元素 i,替换第i+k个元素,这样逐一替换N次后,数组被移位完成。 当然这时要区分能两种情况,N能整除k 和 N不能整除k,这时跳的方式是不一样的。 时间...

2016-06-01 23:03:47

阅读数:828

评论数:0

编程之美 - 数组最长子序列

问题描述: 求一个一维数组的最长递增子序列,时间复杂度尽可能小。 例如:数组 1, -1,2,-3,4,-5,6,-7它的最长递增子序列是 1,2,4,6。 思路: 创建一个数组,用于记录到它为止递增元素的最大个数。 从目标数组的第一个元素开始,寻找从数组0元素开始到当前...

2016-06-01 23:01:29

阅读数:1437

评论数:0

编程之美 - 二维数组最大和的子序列

问题描述: 找出二维数组中的最大和的子序列。二维数组中的子序列是二维数组中的一个方块。 思路一: 使用暴力的方式,从每一个元素开始,变量以它为左上定点的所有的可构造的方块。 时间复杂度 N*N*M*M* sum(MN) 函数:getMaxSum1() 思路二: ...

2016-05-25 10:06:31

阅读数:1131

评论数:0

编程之美 - 数组最大和的子序列

问题描述: 一个数组有N个元素,求这个数组中子数组的最大和。 要求: 子数组是数组中连续的几个元素数组的元素包含正数,负数,0 思路: 使用动态规划的方式从第n-1个元素开始,向前累加。 如果当前值 大于当前值+以前和则在当前和的位置保存当前值,否则保存当前...

2016-05-13 09:22:00

阅读数:1596

评论数:0

编程之美 - 子数组的最大乘积

问题描述: 给定一个长度为N的整数数组,只允许用乘法,不许用除法,求数组中任意N-1个数字的最大乘积 想法1: 计算数组中除去 a[i]以外后的其他数字的乘积,然后在其中找到最大值。 s[i] = s[i-1]*arr[i-1];      t[i] = t[i+1]*ar...

2016-05-13 09:19:20

阅读数:1138

评论数:0

编程之美 - 满足条件的两个数字及扩展问题

问题描述: 对应函数 find_two 快速找出数组中的两个数字,让这两个数字之和等于给定的数字。 想法: 如果把任意两个数字组合进行尝试的话,运算量是N*N不适合。 先将数组进行排序,然后从两头分别取数字进行组合,如果和大于目标数字则在大数字侧找下一个稍小一点的数字。 如果和小...

2016-05-13 09:17:36

阅读数:948

评论数:0

编程之美 - 寻找合适的数字

问题描述: 给一个整数N,求一个整数M,使M*N 的十进制结果中只有 1 和 0。 问题分析: 问题从结果入手,十进制表示只有 1 和 0,这个数字的集合有规律,例如: 1,10,11,100,101,110,111..... 10k次方与前面的每个的数的和。 例如 k=1  =...

2016-04-14 23:12:55

阅读数:846

评论数:0

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