算法
程序邦
1. 擅长Android 开发
2. 擅长React Native 跨平台开发
展开
-
算法---猫扑素数的算法实现
最近看了一位前辈去美团面试的经验,关于手写算法题,猫扑素数,我一看就懵了,什么是猫扑素数?查了一下才知道形,如以 2 开头, 之后跟任意多个 3 的十进制整数而且是个素数, 则它是猫扑素数. 如 2, 23, 233, 2333, 23333 都是猫扑素数, 而 233333 则不是, 它可以分解为 353 x 661.然后就尝试实现了一下。/** * 用于判断一个数是否为猫扑数原创 2017-06-20 11:38:25 · 937 阅读 · 0 评论 -
剑指Offer笔记—— 二维数组中的查找 替换空格
1、面试题3:二维数组中的查找题目大致为: 一个二维数组,每一行按照从左到右递增,每一列按照从上到下递增,查找数组中是否存在某个数。如数组:1 2 8 92 4 9 124 7 10 136 8 11 15思路: 这道题有其特殊性,从右上角或者左下角开始查找的方向是确定的。这句话是说比如是查找原创 2017-06-30 14:57:21 · 377 阅读 · 0 评论 -
剑指Offer笔记—— 从尾到头打印链表 重建二叉树
3、面试题5:从尾到头打印链表题目大致为: 输入一个链表的头结点,从未到头反过来打印每个结点的值。思路: 题目的要求是进行从尾到头输出,而链表的查找只能是顺序查找,栈的结构满足这样的条件:先进后出。同样,也可以使用递归的方式求解。Java代码:链表类:[java] view plain copy原创 2017-06-30 18:20:35 · 367 阅读 · 0 评论 -
剑指Offer笔记—— 用两个栈实现队列 旋转数组的最小数字
面试题7:用两个栈实现队列题目大致为: 用两个栈实现队列的两个函数appendTail和deleteHead。思路: 栈的特性是:后进先出,而队列的特性是:先进先出。这里使用两个栈实现队列有点负负得正的意思。栈1负责添加,而栈2负责删除。Java代码:[java] view plain copy原创 2017-06-30 18:26:11 · 432 阅读 · 0 评论 -
剑指Offer笔记—— 斐波那契数列 二进制中1的个数
面试题9:斐波那契数列 菲波那切数列是每一个学C语言的人都特别熟悉的一个问题。思路: 用递归实现的过程中会出现重复计算的情况,此时,可以利用动态规划的思想,保存中间结果,这样可以避免不必要的计算。Java代码:[java] view plain copypackage org.algorithm.p原创 2017-07-03 16:17:23 · 651 阅读 · 0 评论 -
剑指Offer笔记—— 数值的整数次方 在O(1)时间删除链表结点
面试题11:数值的整数次方题目大致为: 实现函数double power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。思路: 可以考虑对指数折半,这样只需要计算一半的值,若指数是奇数,则-1再折半,否则直接折半。Java实现[java] view plai原创 2017-07-03 16:25:37 · 228 阅读 · 0 评论