算法学习
记录自己学习算法
敲着bug的小熊
这个作者很懒,什么都没留下…
展开
-
树
重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回 代码 前序遍历:根左右。先打印,再遍历左子树,再遍历右子树; 中序遍历:左根右。先遍历左子树,再打印,再遍历右子树; 后序遍历:左右根。先遍历左子树,再...原创 2020-03-01 22:17:58 · 152 阅读 · 0 评论 -
链表
从头到尾打印链表 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 代码 1、用list来接受每个节点的数据; 2、此时的数据是顺序的,再倒序; /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * ...原创 2020-02-28 20:53:44 · 140 阅读 · 0 评论 -
数组
二维数组中查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 代码 使用暴力方法,直接上代码 public class Solution { //使用暴力方法,一个个遍历查找 public boolean Find(int target, ...原创 2020-02-25 18:07:38 · 90 阅读 · 0 评论 -
跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果) 实现思路 /**跳台阶 *1、当不跳时,0 * 2、跳一阶,1 * 3、跳两阶,2 * 4、跳三阶,3 * */ 0 n=0; F(n) 1 n=1; 2 n=2; ...原创 2020-02-24 11:52:48 · 254 阅读 · 0 评论 -
斐波那契数列
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 实现思路 斐波那契数列表达式 0 n=0; F(n) = 1 n=1; F(n-2) + F(n-1) n>1. 使用递归方法 代码 public class Solution { public int Fibonacci(int n) { ...原创 2020-02-24 11:18:05 · 176 阅读 · 0 评论 -
正则表达式匹配
题目描述 请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配 实现思路 1、首先判断字符串和模型的长度,若都为0,则为true; 若仅仅只模型的长度为0,则为fa...原创 2020-02-24 10:31:34 · 97 阅读 · 0 评论 -
空格替换
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy 实现思路 1、找到字符串空格的下表 2、根据下表,将空格替换为对应的字符 代码 public class Solution { public String replaceSpace(StringBuffer str) { ...原创 2020-02-24 10:07:21 · 78 阅读 · 0 评论 -
实现一个函数用来判断字符串是否表示数值
##题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是 ###实现思路 1、将字符串看作A.BeC/A.BEC模型,其中A为整数,B为小数部分,C为整数 ####代码 import java.ma...原创 2020-02-23 22:02:29 · 306 阅读 · 0 评论