文章分类 -  剑指offer笔记

《剑指offer》算法笔记
顺时针打印矩阵
摘要:问题:输入一个矩阵,实现按照从外向里以顺时针的顺序依次打印出每一个数字。 如输入 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 按照顺时针依次打印出的数字为:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10 . 遇到这类问题,可以先考虑清楚 阅读全文

posted @ 2017-02-06 14:58 John_nok 阅读(158) 评论(0) 推荐(0)

调整数组顺序使奇数位于偶数前
摘要:题目:输入一个数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,偶数位于数组的后半部分。 看到题目,比较直观的想法应该是:遍历数组若遇到偶数则将该偶数后面的所有数往前移位1个位置,并将该偶数保存在数组的最后,这样算法的复杂度为O(n^2). 一种比较可行的做法是: 在数组中 阅读全文

posted @ 2017-02-06 10:47 John_nok 阅读(167) 评论(0) 推荐(0)

斐波那契数列及其应用
摘要:斐波那契数列的定义为: 用代码实现斐波那契数列求f(n)时,通常认为有递归和循环两种实现方法。 其中递归实现代码如下: 但是递归实现虽然让代码简洁了,却存在着由于每次函数调用都需要保存参数,返回地址及临时变量,进出栈需要时间开销等操作,此外还存在重复计算的问题。因此递归调用的效率低下。 另外当数据量 阅读全文

posted @ 2017-02-05 10:41 John_nok 阅读(2185) 评论(0) 推荐(1)

行列已排序二维数组中的查找
摘要:题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的顺序排序。实现输入一个二维数组和一个整数,判断数组中是否含有该整数。 例如输入的二维数组是: 1 2 8 9 2 4 9 12 5 7 10 13 要查找的整数是 7 分析: (1) 最简单粗暴的方案是对二位数数组做遍 阅读全文

posted @ 2017-02-04 17:14 John_nok 阅读(466) 评论(0) 推荐(0)

导航