数据结构与算法java语言描述
C137leo
但行善事,莫问前程。
展开
-
剑指offer编程题青蛙跳台阶变态版java实现(递归,动规)
编程题青蛙跳台阶变态版java实现题目描述问题分析代码级解释题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。青蛙跳台阶的普通版本解析问题分析我们先规定f(n)为剩下n阶台阶数对应的跳法种数,例如f(0)=f(target-target)代表有target级台阶,并且一次性跳了target级,这时只有一种跳法。f(1)=f(target-(target-1))代表有target级台阶,已经跳过了target-1级台阶,现在还剩一级原创 2020-06-12 22:27:23 · 221 阅读 · 0 评论 -
剑指offer编程题求数据流中位数java实现及优先队列构造方法Comparator类参数重写compare方法部分源码解释(优先队列-大顶堆-小顶堆)
编程题求数据流中位数java实现(优先队列-大顶堆-小顶堆)题目描述问题分析代码及讲解compare方法的解释PriorityQueue中comparator接口解释重写的compare方法在优先队列中的使用总结题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。问题原创 2020-06-08 00:09:27 · 392 阅读 · 0 评论 -
剑指offer编程题判断一个二叉树是否为对称的java实现(镜像二叉树,递归)
编程题判断一个二叉树是否为对称的java实现题目描述问题分析代码及解释别人的代码总结题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。问题分析这个问题的切入点是二叉树的镜像,二叉树和它的镜像相同意味着(以下图为例)根节点的左右子树相同,对a而言,左侧的a的左子树b必须等于右侧a右子树的b,余下的结点以此类推,满足这些条件才可以称为同样的。二叉树的结构public class TreeNode { int val = 0;原创 2020-05-24 20:05:07 · 373 阅读 · 0 评论 -
剑指offer编程题找出二叉树中序遍历的下一个结点Java实现(二叉树,中序遍历)
编程题找出二叉树中序遍历的下一个结点Java实现题目描述问题分析代码及讲解总结题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。问题分析二叉树的结构如下所示,题目中的描述next意思是指向当前节点的父节点。我们要知道中序遍历的含义,先按中序遍历左子树,再输出当前结点,然后再中序遍历右子树。public class TreeLinkNode { int val; TreeLinkNode le原创 2020-05-24 13:27:53 · 478 阅读 · 0 评论 -
剑指offer重建二叉树算法题Java实现(二叉树,递归)
重建二叉树算法题Java实现题目描述问题分析代码及讲解总结题目描述题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。问题分析二叉树大家都很熟悉,先声明一下二叉树的结构。Definition for binary tree public class TreeNode { int val;原创 2020-05-24 00:09:03 · 349 阅读 · 0 评论 -
剑指offer剪绳子算法题Java实现(贪心,动态规划)
剪绳子算法题Java实现题目描述问题的分析我的代码别人的代码利用动态规划的求解别人的代码写的是真的好,比较起来自己还差的远,加油吧朋友们!莫愁前路无知己。题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。问题的分析链接:https://www.n原创 2020-05-22 22:38:38 · 351 阅读 · 0 评论 -
java语言描述基数排序(桶排序)
java语言描述基数排序(桶排序)简单介绍桶排序(基数排序)代码如下简单介绍桶排序(基数排序)具体的文字说明不做介绍,需要可以百度,我只举个栗子。如下每一个蓝色方框代表每一位的“桶”,对个位进行排序,按要排序的数组元素的顺序进行添加排序,先看个位,如下图所示,从0到9,依次添加。注:本文展示的基数排序不能对负数进行排序,若想用基数排序对负数排序需要添加一些方法,请参考他人的文章。个位排序完...原创 2020-01-28 00:35:23 · 185 阅读 · 0 评论