
面向对象编程
文章平均质量分 79
yuan_da_xing
不扯淡,好好做件有意义的事
展开
-
带符号大整数加减法,乘法,除法,模除,指数
一、问题的思考1、对于大整数,我们只需要提供构造,显示,加减法,乘法,除法,模除,指数这些用户接口就可以了。2、符号位怎么解决?首先考虑的办法是定义一个类,然后里面有sign_, std::vector i_这两个成员变量,我在实现的过程中发现这样写代码,思路不够清晰,代码也不好写。因为当我们编写代码实现加减乘除,比较运算的时候,就不得不考虑符号位,这种设计会使代码的逻辑复杂,不够清晰原创 2012-11-21 11:50:00 · 4119 阅读 · 0 评论 -
实现malloc-free用来管理64k内存
问题的引入实现malloc-free,用来管理64k的内存。这是一道面试题,也是一道很好的设计题解决思路1.malloc(size_t size), free(void *p)是用户api, 释放的时候需要知道释放空间的大小,并且需要放入到一个空闲链表里面去,可以这样设计typedef struct item{ uint16_t size; unio原创 2012-12-23 22:34:22 · 1141 阅读 · 0 评论 -
字符串算法
给出一个句子,统计句子中有多少单词方法1:设计一个标志变量inword表示是否在单词中,如果inword从false变为true,表明遇到一个单词,统计值count++,每当碰到一个单词的字符,将inword设置为true,并且在设置之前判断inword是否为false,为false,则将count++,当碰到空格或者标点符号,将inword设置为false进一步优化该方法,就原创 2013-03-20 20:12:03 · 615 阅读 · 0 评论 -
水滴、最大和子序列问题
水滴容纳问题 给定数字串,比如2 1 3 4 5,每个数字表示木棍的长度,只考虑一维的 情况,假如空中有水滴不断的落下,问木棍之间最多能容纳多少水? 比如上面的1在2和3之间,所以能够容纳1滴水。 解法- 分别计算出每个木棍左边和右边的最长木棍,假定为L,R,则容纳的水 为:min(L,R)- 当前原创 2013-03-21 09:30:58 · 713 阅读 · 0 评论 -
序列最大和分割、最大距离、滑动窗口最大值问题
数字最大和分割问题 给出N个数字,将其分成M份,每一份的和是相等的,求和最大的分割,每 一份并不要求是原序列中连续的元素。 比如3 2 4 3 6,最大和的分割是3 2 4和3 6 假定每一份的和是已知的,为S,判断N个元素的序列是否能被分成M份, 每一份元素的和为S。判断的方法如下,首先从N个元素中任取一个,如原创 2013-03-23 14:48:06 · 1369 阅读 · 0 评论 -
回文数、整数输出,数字序列最小分割问题
判断一个数字N是不是回文数字 这里介绍两种方法,一、将数字逆序,N mod 10可以计算出最低位,除以 10可以去掉最末尾的数字,不断这样操作就可以得到N的一个逆转序列,将 该序列重新变为一个新的十进制数字,和原来的数字比较可以判断该数字是 否是回文,N的逆序数字可能会溢出,最好将数字提升计算。 和判断字符串是否回文一样从两原创 2013-03-22 19:21:04 · 1196 阅读 · 0 评论 -
99道lisp练习题----(三)格雷码和haffman树
P49 (**) Gray code.(格雷码问题)An n-bit Gray code is a sequence of n-bit strings constructed according to certain rules. For example,n = 1: C(1) = ['0','1'].n = 2: C(2) = ['00','01','11','10'].n =原创 2013-03-08 17:14:41 · 1107 阅读 · 0 评论 -
序列元素和、正则表达式匹配、BFS最短路径问题
数组中元素和问题给定n个数字序列,各个数字都不相同,给定K值。 1. 从序列中找到所有的数对,其和为K 2. 从序列中找出三个数,其和为K,找出所有的情况 3. 从序列中找出任意个数,其和为k。问题一 首先将数组排序,假如K=11, 排好序的结果如下: | 1 | 3 | 5 | 7 | 8 | 9 |原创 2013-03-24 17:42:53 · 1092 阅读 · 0 评论