剑指offer之关于整数的处理
2015-08-30 09:36
316 查看
首先是整数次方的处理
在这处理的时候有几个细节主义处理
1.当指数是负数的时候
2.当指数式0的时候
3.当不满足条件的时候要抛出异常
再一个就是常用的将一个树化为二进制的形式,或者是求整数的幂或者矩阵 的幂
这个函数写的时候是用递归来写的,所以要注意跳出来的条件,第二使用递归来实现,三,用&操作代替原来的求%的操作,而且在用之前都要考虑这个范围的问题,一般会说参数为n,可是这个n到底是多大呢,用相应的类型去求解相应规模的运算
----------------------------------------------------------------------------从1到n位最大数的处理-----------------------------------------------------------------------------------------
当n很大的时候,超过整数的表示范围,就不能用整数进行处理,这时候从字符串的角度进行解决,一边打印,一边寻找边界
一个最简单的办法就是将每次增加以后得到的数与‘999....99’进行比较,判断是否相等,但是这样的复杂度比较高,每次比较都是0(n)的算法
另外一种就是每次判断最高位在加1之后是否进位,如果有进位。那么这个数就是所要求的最大的整数了
其中的自增函数
另外一种解题思路是使用全排列的思想依次列列举最后一项,所以就是使用递归的思想来解决这个问题
使用两个函数的思想和快速排序的思想相像
在这处理的时候有几个细节主义处理
1.当指数是负数的时候
2.当指数式0的时候
3.当不满足条件的时候要抛出异常
再一个就是常用的将一个树化为二进制的形式,或者是求整数的幂或者矩阵 的幂
这个函数写的时候是用递归来写的,所以要注意跳出来的条件,第二使用递归来实现,三,用&操作代替原来的求%的操作,而且在用之前都要考虑这个范围的问题,一般会说参数为n,可是这个n到底是多大呢,用相应的类型去求解相应规模的运算
----------------------------------------------------------------------------从1到n位最大数的处理-----------------------------------------------------------------------------------------
当n很大的时候,超过整数的表示范围,就不能用整数进行处理,这时候从字符串的角度进行解决,一边打印,一边寻找边界
一个最简单的办法就是将每次增加以后得到的数与‘999....99’进行比较,判断是否相等,但是这样的复杂度比较高,每次比较都是0(n)的算法
另外一种就是每次判断最高位在加1之后是否进位,如果有进位。那么这个数就是所要求的最大的整数了
其中的自增函数
另外一种解题思路是使用全排列的思想依次列列举最后一项,所以就是使用递归的思想来解决这个问题
使用两个函数的思想和快速排序的思想相像
相关文章推荐
- bootstrap的html编码规范
- jQuery.extend 函数详解
- CSS3: box-shadow 阴影
- JSONArray介绍与操作
- transfer-encoding:chunked的含义
- IE6/7/8如何兼容CSS3属性
- POJ 3086 Triangular Sums(水~)
- web前端 js中函数的两种常见写法
- web前端 js写的俄罗斯方块
- 怎样以快速样式的方式在word文档中生成以下多级自动编号
- 一张图片优化5k带来的带宽成本及其前端页面的优化方法
- jQuery中this与$(this)的区别
- 前端页面的两轮渲染
- css3 backgound背景的一些用法 和background-position用法
- MAC下使用feddler进行抓包
- FastJson的使用
- HDU5024--Wang Xifeng's Little Plot(DFS) 4000
- jQuery div层渐入渐出效果
- Batsing的网页编程规范(HTML/CSS/JS/PHP)
- HtmlTestRunner自动化报告代码示例