算法
8-0416
这个作者很懒,什么都没留下…
展开
-
《剑指Offer》34. 二叉树中和为某一值的路径
leetcode: https://leetcode-cn.com/problems/er-cha-shu-zhong-he-wei-mou-yi-zhi-de-lu-jing-lcof/ 题目描述 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11原创 2020-07-25 10:05:06 · 136 阅读 · 0 评论 -
《剑指offer》(JAVA版)——矩形覆盖
一、题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 输入:一个整数n 输出:覆盖方法种数 牛客NOWCODER 二、思路分析 思路和斐波那契数列类似。但f(1) = 1, f(2) = 2。 三、实现代码 public class Solution { public int RectCover(int ...原创 2019-12-06 22:04:03 · 161 阅读 · 0 评论 -
《剑指offer》(JAVA版)——跳台阶、变态跳台阶
一、跳台阶 1、题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 输入:一个整数n 输出:跳上n个台阶的跳法种数 2、思路分析 思路和斐波那契数列的类似。 3、实现代码 /** * @author 0416 * @date 2019/12/6 **/ public class JumpStep { /*...原创 2019-12-06 21:51:19 · 155 阅读 · 0 评论 -
《剑指offer》(JAVA版)——斐波那契数列
一、题目描述 要求输入一个整数n,输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 输入:一个整数n 输出:斐波那契数列的第 n 项 牛客NOWCODER 二、思路分析 1、递归。效率低下,不推荐 2、循环,利用两个额外的空间存储中间变量。O(n) 三、实现代码 /** * @author 0416 * @date 2019/11/17 * 两种解法 * 青蛙跳n个台阶...原创 2019-12-06 17:03:51 · 174 阅读 · 0 评论 -
《剑指offer》(JAVA版)——旋转数组的最小数字
一、题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 输入:一个非递减排序的数组的一个旋转 输出:旋转数组的最小元素 牛客NOWCODER 二、思路分析 利用二...原创 2019-12-06 16:54:13 · 178 阅读 · 0 评论 -
《剑指offer》(JAVA版)——用两个栈(队列)实现队列(栈)
一、题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 牛客NOWCODER 二、思路分析 Push:直接添加元素到栈1中; Pop:当元素要出栈时,把栈1中的元素全部pop到栈2中,再从栈2弹出栈顶元素。若栈1为空,直接弹出栈2栈顶元素。 三、实现代码 import java.util.Stack; /** * @AUTHOR:0416 * @D...原创 2019-12-06 16:18:45 · 114 阅读 · 0 评论 -
《剑指offer》(JAVA版)——重建二叉树
一、题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 输入 :某二叉树的前序遍历和中序遍历的结果数组 输出 :二叉树的根结点 牛客NOWCODER 二、思路分析 在二叉树的前序遍历中,第一个数字是树的根...原创 2019-12-06 11:30:50 · 114 阅读 · 0 评论 -
《剑指offer》(JAVA版)——从尾到头打印链表
一、题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 输入 :一个链表的头结点 输出 :按链表从尾到头存储的ArrayList 牛客NOWCODER 二、思路分析 1、使用栈。遍历链表的时候,把每一个遍历的结点放入一个栈中,遍历完成后再从栈顶将结点输出 2、使用递归的方法。 三、实现代码 import java.util.ArrayList; import java.uti...原创 2019-12-05 23:59:55 · 100 阅读 · 0 评论 -
《剑指offer》(JAVA版)——替换空格
一、题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 输入 :一个字符串str 输出 :替换之后的字符串 牛客NOWCODER 二、思路分析 1、使用StringBuilder。 创建一个StringBuilder对象stringBuilder,在遍历原字符串的同时,把遍历到的字...原创 2019-12-05 23:33:26 · 137 阅读 · 0 评论 -
《剑指offer》(JAVA版)——数组中重复的数字
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 输入 : 一个二维数组array和一个整数target 输出 :true / false 牛客NOWCODER 思路分析 首先选取数组右上角的数字temp,如果该数字等于要查找的数字target,...原创 2019-12-05 23:32:46 · 125 阅读 · 0 评论 -
蓝桥杯【历届试题 小数第n位】 java版 数论
历届试题 小数第n位 时间限制:1.0s 内存限制:256.0MB 问题描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。 如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。 本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数。 输入格式 一行三个整数:a b n,用空格分开。a是被除数,b是除数,n是所求...原创 2019-03-18 21:33:11 · 520 阅读 · 3 评论 -
蓝桥杯【历届试题 翻硬币】 java版 (贪心算法)
历届试题 翻硬币 时间限制:1.0s 内存限制:256.0MB 问题描述 小明正在玩一个“翻硬币”的游戏。 ...原创 2019-03-06 09:20:17 · 452 阅读 · 0 评论 -
蓝桥杯【历届试题 核桃的数量】 java版 求最小公倍数
这是一道求最小公倍数的题目 求最小公倍数的方法大致分为以下两类: 1、求最大公约数 设a,b的最大公约数为(a,b),最小公倍数为[a, b],满足 a*b = (a, b) * [a, b] 2、穷举法 import java.util.Scanner; /** * 核桃的数量 最小公倍数 穷举法 * @author Sylvia * 2019年3月1日 */...原创 2019-03-06 08:40:52 · 291 阅读 · 0 评论 -
蓝桥杯【历届试题 合根植物】 java版
使用了并查集,不熟悉并查集的可以看一下该博主的文章,讲解通俗易懂https://www.cnblogs.com/xzxl/p/7226557.html import java.util.HashSet; import java.util.Scanner; import java.util.Set; /** * 合根植物 (并查集) * @author Sylvia * 2019年...原创 2019-03-05 23:56:59 · 461 阅读 · 0 评论 -
蓝桥杯【历届试题 剪格子】 java版
利用深度优先搜索 import java.util.Scanner; public class Main{ //存储格子 static int[][] map; //是否已访问 static int[][] marked; //查找当前格子相邻的格子 static int[][] connect = {{1,0}, {-1,0}, {0,1...转载 2019-03-05 23:42:22 · 394 阅读 · 0 评论