![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法 の JAVA实现
文章平均质量分 73
lily_lee1213
努力努力再努力~
展开
-
JAVA Map 源码分析
HashMap: 根据键的HashCode值存储数据,使用的数据结构是链表散列(数组+链表)访问速度很快。父类是AbstractMap。特点是线程不安全、允许空键值,改用containsvalue和containsKey。冲突解决方法是链地址法(它有一个桶的概念,对于Entry数组而言,数组每个元素处存储的是链表,一个链表就是一个桶,使用addEntry()方法添加新元素时总是将新元素添加在链表的表头)原创 2017-08-31 22:22:32 · 1904 阅读 · 0 评论 -
Java判断二叉树是否为平衡二叉树
输入一棵二叉树,判断该二叉树是否是平衡二叉树原创 2017-06-06 15:25:14 · 6475 阅读 · 0 评论 -
Java实现二叉树的深度
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度原创 2017-06-01 17:23:47 · 627 阅读 · 0 评论 -
Java实现矩形覆盖
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?原创 2017-06-05 16:09:53 · 1036 阅读 · 0 评论 -
Java实现青蛙跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法; 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法原创 2017-06-02 15:29:50 · 1469 阅读 · 0 评论 -
Java实现数字颠倒
输入一个整数,将这个整数以字符串的形式逆序输出原创 2017-06-01 11:21:36 · 5899 阅读 · 0 评论 -
Java实现 取近似值
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。原创 2017-06-01 10:31:21 · 3250 阅读 · 0 评论 -
求int型正整数在内存中存储时1的个数
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。原创 2017-06-01 10:04:05 · 260 阅读 · 0 评论 -
Java实现求 1+2+3+.....+n
Sum_Solution(n-1)原创 2017-06-05 15:14:10 · 7756 阅读 · 0 评论 -
Java查找数组鞍点
题目:对于一个二维数组,鞍点就是二维数组中的一个元素,同时满足在该列上的最大值,在该行上的最小值。原创 2017-05-18 22:42:38 · 4640 阅读 · 0 评论 -
Java计算FIFO的缓存未命中数
题目:在操作系统中,有一种虚拟内存管理技术是先进先出(FIFO)缓存,当所请求的存储页面不在缓存中或者缓存已满,应该从缓存中移除持续时间最长的页面,以腾出空间给更多请求的页面。如果缓存未满,那么可以简单的将请求的页面添加到缓存。给定的页面应在缓存中最多出现一次。当请求某个页面而在缓存中未找到此页面时发生缓存未命中。给定缓存的最大尺寸和页面请求列表,计算缓存未命中数。原创 2017-05-18 22:29:34 · 698 阅读 · 0 评论 -
Java实现交替排序
题目:交替排序。输入int [] arr={4,2,5,3,7}; 需要输入它的交替排序结果 result={2,4,7}原创 2017-05-18 22:23:50 · 1437 阅读 · 0 评论 -
java实现24点算法
题目: 随机给4个数,对其进行加减乘除运算,最终值为24,最终打印数学表达式。思路:穷举4个整数的所有可能表达式,然后对表达式求值。原创 2017-04-27 15:40:59 · 11017 阅读 · 0 评论 -
java实现数字组合
题目:将1-9这9个数字分成三个百位数,每个数字只能用一次。要求:第二个数字是第一个数的2倍,第三个数字是第一个的3倍。 输出所有可能的情况。原创 2017-04-27 10:43:19 · 1913 阅读 · 0 评论 -
Java实现字符串反转
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串原创 2017-06-02 08:21:03 · 488 阅读 · 0 评论 -
Java实现参数解析
请编写一个参数解析程序,实现将命令行各个参数解析出来原创 2017-06-02 09:17:47 · 1373 阅读 · 0 评论 -
Java实现查找输入整数二进制中1的个数
计算整数二进制中1的个数原创 2017-06-02 09:57:16 · 889 阅读 · 0 评论 -
Java Set 源码分析
HashSet:按照Hash算法来存储集合中的元素,有良好的存取和查找性能。特点:1、无序;2、线程不同步3、集合元素值可以为null使用equals()+hashCode()两个返回值都相等来判断两个元素是否相等。如果hash冲突,HashSet会在同一位置使用链式结构来保存多个对象。TreeSet:实现了SortSet()接口,采用的数据结构是红黑树。最大的特点是有序(提供Comparable()接口支原创 2017-08-31 22:22:12 · 438 阅读 · 0 评论 -
Java实现二进制中1的个数
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示原创 2017-06-04 17:06:24 · 2086 阅读 · 0 评论 -
Java实现完全数(Perfect number)
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。原创 2017-06-04 11:38:24 · 8180 阅读 · 0 评论 -
Java实现用两个栈来实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型原创 2017-06-03 18:54:18 · 224 阅读 · 0 评论 -
Java实现构建乘积数组
给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法原创 2017-06-03 16:47:43 · 1062 阅读 · 0 评论 -
Java求任意非负整数区间中1出现的次数
求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。原创 2017-06-07 17:29:11 · 1409 阅读 · 0 评论 -
Java实现棋盘格子走法
请编写一个函数(允许增加子函数),计算n x m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走原创 2017-06-03 10:48:14 · 3132 阅读 · 0 评论 -
java实现放苹果(摆放类题目)
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int m = sc.nextInt(); int n = sc.nextInt(); if(m<1 || n>10){原创 2017-06-03 10:09:33 · 1995 阅读 · 0 评论 -
Java实现配置文件恢复 匹配
为了简化输入,方便用户,以“最短唯一匹配原则”匹配:1、若只输入一字串,则只匹配一个关键字的命令行。例如输入:r,根据该规则,匹配命令reset,执行结果为:reset what;输入:res,根据该规则,匹配命令reset,执行结果为:reset what;2、若只输入一字串,但本条命令有两个关键字,则匹配失败。例如输入:reb,可以找到命令reboot backpalne,但是该命令有两个关键词,所有匹配失败,执行结果为:unkown command原创 2017-06-03 09:10:03 · 641 阅读 · 0 评论 -
Java实现二叉树镜像 变换
操作给定的二叉树,将其变换为源二叉树的镜像原创 2017-06-02 14:51:31 · 314 阅读 · 0 评论 -
Java实现不用加减乘除做加法
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号原创 2017-06-02 14:32:19 · 2451 阅读 · 0 评论 -
Java找出两个链表的第一个公共节点
输入两个链表,找出它们的第一个公共结点。原创 2017-06-06 17:07:58 · 3146 阅读 · 0 评论 -
Java计算连续子向量的最大和
在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度至少是1)原创 2017-06-06 16:23:33 · 572 阅读 · 0 评论 -
Java求解逆波兰表达式
逆波兰表达式在一个基于栈的虚拟机中求解,虚拟机的栈能保存16个整数,虚拟机从左向右扫描表达式,遇到整数就压栈,遇到表达式则从栈顶弹出若干个整数进行计算,计算结果重新压回栈中。原创 2017-04-26 21:49:43 · 490 阅读 · 0 评论 -
java实现数字拆解(正整数的所有拆解结果)
题目:将一个正整数进行拆解,最大数不能超过2. 打印可拆解情况和所有拆解结果。解题思路:用递归来实现。原创 2017-04-26 13:46:01 · 6668 阅读 · 0 评论 -
数组中的重复数字 の HashMap解法
数组中的重复数字 の HashMap解法 一个简单小程序也是到处是坑啊。原创 2017-03-13 23:10:11 · 648 阅读 · 0 评论 -
一道有意思的JAVA题
我的思维是这样的,如果要把一个数组N等分,而空间复杂度要求O(N),那么循环套循环是不可取的,但是求和的过程本身就是一个循环,如何一次循环就能求到想要的和呢?空间复杂度也是O(N),不可能用来存放所有的和的组合可能性。原创 2017-03-04 14:30:42 · 344 阅读 · 0 评论 -
非搜索二叉树的最近公共祖先
今天做了一个在线编程题, 题目是:求一个一般二叉树(非二叉搜索树)的最近公共祖先。题目要求不能使用额外空间来存储节点。原创 2017-03-22 22:14:37 · 294 阅读 · 0 评论 -
分堆问题
小明得到了n个石头,他想把这些石头分成若干堆,每堆至少有一个石头。他把这些石堆排在一条直线上,他希望任意相邻两堆的石头数都不一样。小明最后的得分为石头数大于等于k的石堆数,问他最多能得多少分。原创 2017-04-07 21:35:06 · 2890 阅读 · 0 评论 -
站队问题
有一条很长的队伍,队伍里面一共有n个人。所有的人分为三类:警察,小偷和普通人。将队伍里面的人从前到后由1到n编号,编号为i的人与编号为j的人的距离为i与j之差的绝对值。每一个警察有一个能力值x,表示他能够监视与他距离不超过x的所有人,小偷被警察发现当且仅当他被一个或多个警察监视到。你知道在整条队伍中,一共有多少个小偷会被警察发现吗?原创 2017-04-07 21:29:20 · 1318 阅读 · 0 评论 -
二叉排序树 の 实现&遍历
看了书上关于二叉树的知识,决定用java来实现一下二叉树。实现的是二叉排序树,就是小的在左边,大的在右边那个。然后实现了,中序遍历,先序遍历,后序遍历,层序遍历然后实现了一下按行打印二叉树。//层序遍历二叉树,又名, 把二叉树打印成多行/*《解法来自剑指offer》* 这里使用队列来实现二叉树的层序遍历,* 先将根节点放入队列,然后每次都从队列中取出一个节点来打印该数值。* 如果这个节点有子节点,则把它的子节点放到队列尾,* 直到队列为空* */原创 2017-03-20 19:28:22 · 427 阅读 · 0 评论 -
找出栈中最小元素 の 双栈实现
* 定义一个主栈和一个辅栈, * 主栈执行的是push压栈的操作, 用一个min来记录当前的最小值, * 用一个辅栈来保存最小元素,保证辅栈的栈顶元素始终为最小值。原创 2017-03-19 22:16:57 · 321 阅读 · 0 评论 -
倒序输出单链表
倒序输出的方式有两种,1、用arrayList,node.next=null的时候开始add。2、用栈的后进先出。原创 2017-03-19 21:15:03 · 599 阅读 · 0 评论