![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
Ethan9987
这个作者很懒,什么都没留下…
展开
-
递归 + 记忆化 + DP 三角形最小路劲和 java
作者:sweetiee原文链接:https://leetcode-cn.com/problems/triangle/solution/di-gui-ji-yi-hua-dp-bi-xu-miao-dong-by-sweetiee/一、题目分析题意:给定三角形,每次只能移动到下一行中的相邻结点,求从顶点到底边的最小路径和。[[2],[3,4],[6,5,7],[4,1,8,3]]相邻结点:与(i, j) 点相邻的结点为 (i + 1, j) 和 (i + 1, j + 1)。分析:转载 2020-09-05 11:45:34 · 183 阅读 · 0 评论 -
求斐波那契数列的第n项 java
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 1 < N <= 100.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。后一项 = 前一项+前前一项 首先我们会想到使用递归:public int f原创 2020-09-01 09:18:02 · 3117 阅读 · 0 评论 -
用两个栈实现队列 & 用队列实现栈 java
用两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )class CQueue { public CQueue() {} public void appendTail(int value) {} public int deleteHead() {}}我们首先知道栈(stack)和队列(queu原创 2020-08-29 12:00:54 · 153 阅读 · 0 评论 -
重建二叉树 & 二叉树的下一个节点 java
重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,输入前序遍历序列{1, 2, 4, 7, 3, 5, 6, 8}和中序遍历序列{4, 7, 2, 1, 5, 3, 8, 6},则重建如下所示二叉树并输出它的头节点。二叉树节点的定义如下:/* * 1 * / \ * 2 3 * / / \ * 4原创 2020-08-28 12:40:46 · 123 阅读 · 0 评论 -
从尾到头打印链表 java
输入一个链表的头节点,从尾到头反过来打印输出每个节点的值。链表节点定义如下:public class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}首先会想到的方法是改变链表的方向,然后就可以从头到尾输出。不过通常打印是一个只读操作,我们不希望打印时修改内容。当我们遍历链表的时候 顺序是从头到尾,可输出的顺序是要求从尾到头,很容易想到,我们可以用栈(先进后出,后进先出)来实现这种顺序。pu原创 2020-08-26 15:06:47 · 101 阅读 · 0 评论 -
在有序的二维数组中查找 java
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入一个二维数组和一个目标数,返回 false OR true。暴力法直接遍历,两层循环,找到后直接返回public boolean findOn2(int[][] matrix, int number) { boolean found = false; if (matrix != null && matr原创 2020-08-23 12:59:05 · 274 阅读 · 0 评论 -
不修改数组找出重复的数 java
/** * @Author bilue * @Date 2020/08/22 * @Description **/public class Solution { //不修改数组找出重复的数 public int getDuplication(int[] nums, int length) { // 创建一个长度为n+1的辅助数组 int[] nums1 = new int[length + 1]; // 把原数组的每一个数字复制到辅助原创 2020-08-22 22:12:12 · 140 阅读 · 0 评论 -
BinarySearchTree 二分搜索树 Floor/Ceil操作
floor函数// 递归算法 返回比e大的最接近e的数public E floor(E e) { if (size == 0 || e.compareTo(minimum()) < 0) { return null; } return floor(root, e).e;}private Node floor(Node node, E e) { if (node == null) return null; if (e.compareTo原创 2020-05-13 18:07:36 · 323 阅读 · 2 评论