摘要:
/** * 题目:替换空格() * 描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 * 解决方案: 方法一: 在java中,String有一个方法replaceAll(); 传入rege 阅读全文
摘要:
/** * 题目:二叉搜索树与双向链表 * 描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向 * 方案:在中序遍历中添加前驱结点 * */ 阅读全文
摘要:
/** * 题目:复杂链表的复制 * 描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。 * (注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) * 方案:方法一: ① 遍历原链表 阅读全文
摘要:
/** * 题目:合并两个排序的链表 * 描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 * 解决方案: * */ 阅读全文
摘要:
/** *题目: 反转链表 *描述:输入一个链表,反转链表后,输出链表的所有元素。 *解决方案: 新new一个ListNode,处理next的指向关系 * */ 阅读全文
摘要:
题目:链表中倒数第k个结点描述:输入一个链表,输出该链表中倒数第k个结点。解决方案:思路: 根据规律得出倒数第k个节点是 n-k+1个节点 方法一:先计算出链表的长度,在循环走到n-k+1步。(相当于去掉链表最后k-1个元素,然后求此时链表最后一个元素)方法二:两个指针指向头结点,第一个指针走k-1 阅读全文
摘要:
/** * 题目:从尾到头打印链表 * 描述:输入一个链表,从尾到头打印链表每个节点的值。 * 解决方案:方法一:反转链表后进行遍历 * 方法二:使用额外空间栈 * 方法三:递归 * */ 阅读全文
摘要:
/** * 题目:旋转数组的最小数字 * 描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 * 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 * 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 * NOTE:给出的所有 阅读全文
摘要:
/** * 题目:二维数组中的查找 * 描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 * 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 * 解决方案: 方法一:遍历数组,进行比较 时间复杂度为O(n*k) * 方法 阅读全文
摘要:
/** * 题目:矩形覆盖 * 描述:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? * 解决方案:思路 :举例说明 * n = 1时 一个2*1的小矩形 2*1的大矩形 1种方法(直接填充) * n = 2时 2个2 阅读全文
摘要:
/** *题目: 变态蛙跳台阶 *描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 *解决办法: 思路:n级台阶有n级跳法,,举例说明 * 台阶的阶数:1,2,3,4,5,··· * 对应的跳法:1,2,4,8,16,··· * 1 阅读全文
摘要:
/** *题目: 跳台阶 *描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 *解决方案:方法一:思路:举例说明并从中找到规律,列出台阶数和跳法之后,发现裴波那契列类似 * 步骤:根据公式写出代码即可。 * 1 (n=1) * f(n) 2 (n=2) 阅读全文
摘要:
/** * 题目:斐波那契数列 * 描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39 * 解决方案:方法一:递归 * 方法二:动态规划,如果需要缓存所有的结果,用额外的数组空间进行存储。只要结果的话,就只需要中间的一个变量 * * 裴波那契背景:又称黄金 阅读全文
摘要:
1.数据元素之间的四种基本逻辑结构 集合;同属于一个集合 线性结构;线性表、队列、栈 树:一个对多个 , 人跟机器下象棋 图:多个对多个, 多岔路口交通灯管理问题、古老的七桥问题 2.存储结构 顺序存储 链式存储 散列存储--通过关键字计算得到元素的存储位置(类似于一个函数) 3.算法分析主要方法 阅读全文