
Java数据结构
普通网友
这个作者很懒,什么都没留下…
展开
-
Topk问题:找最后一块石头质量
问题解释:有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为x 和y,且x <= y。那么粉碎的可能结果如下:如果x == y,那么两块石头都会被完全粉碎;如果x != y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。示例:输入:[2,7,4,1,8,1]输出:1解释:先选出 7 和 8,得到 1...原创 2021-09-01 21:56:30 · 157 阅读 · 0 评论 -
TOPK问题:查找和最小的K对数字
给定两个以升序排列的整数数组 nums1 和 nums2,以及一个整数 k。定义一对值(u,v),其中第一个元素来自nums1,第二个元素来自 nums2。请找到和最小的 k个数对(u1,v1), (u2,v2) ... (uk,vk)。示例 1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[1,4],[1,6]解释: 返回序列中的前 3 对数: [1,2],[1,4],[1,6],[7,...原创 2021-09-01 21:46:01 · 210 阅读 · 0 评论 -
二叉树进阶面试题
1. 二叉树的构建及遍历。2. 二叉树的分层遍历 。3. 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先 。4. 二叉树搜索树转换成排序双向链表。5. 根据一棵树的前序遍历与中序遍历构造二叉树。6. 根据一棵树的中序遍历与后序遍历构造二叉树7. 二叉树创建字符串。package tree;import sun.font.CreatedFontTracker;import java.util.ArrayList;import java.util.List;im原创 2021-08-21 19:43:08 · 155 阅读 · 0 评论 -
二叉树基础面试题
1. 二叉树的前序遍历。2. 二叉树中序遍历 。3. 二叉树的后序遍历 。4. 检查两颗树是否相同。5. 另一颗树的子树。6. 二叉树最大深度。7. 判断一颗二叉树是否是平衡二叉树。8. 对称二叉树。9.层序遍历10.判断一棵树是不是完全二叉树//给你二叉树的根节点 root ,返回它节点值的 前序,中序,后序 遍历。把遍历结果放入顺序表中*///层序遍历二叉树(孩子树)void levelOrderTraversal1(Node root){ Que原创 2021-08-17 20:52:31 · 109 阅读 · 0 评论 -
树的概念及二叉树实现的基本操作
树的 概念 :树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 有一个特殊的节点,称为根节点,根节点没有前驱节点 除根节点外,其余节点被分成M(M > 0)个互不相交的集合T1、T2、......、Tm,其中每一个集合 Ti (1 <= i <= m) 又是一棵与树类似的子树。每棵子树的根节点有且只有一个前驱,可以有0个或多个后继。树是递归定义的。.原创 2021-08-15 21:17:47 · 201 阅读 · 1 评论 -
实现队列(链表实现)和循环队列(数组实现)
队列的概念:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)入队列:进行插入操作的一端称为队尾(Tail/Rear)出队列:进行删除操作的一端称为队头 (Head/Front)实现队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据效率会比较低。1.使用链表实现队列package queue;public class My...原创 2021-08-14 20:07:25 · 399 阅读 · 1 评论 -
Java实现栈
1. 利用顺序表实现,即使用尾插 + 尾删的方式实现2. 利用链表实现,则头尾皆可 相对来说,顺序表的实现上要更为简单一些,所以我们优先用顺序表实现栈package stack;public class Test { public static void main(String[] args) { myStack1 m = new myStack1(); m.push(1); m.push(2); m.push(3);.原创 2021-08-13 21:59:32 · 125 阅读 · 1 评论 -
Java实现杨辉三角
给定一个非负整数numRows,生成「杨辉三角」的前numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。package datastruct;import java.util.ArrayList;import java.util.List;public class YangHui { public static List<List<Integer>> generate(int numRows) { ...原创 2021-08-13 19:26:17 · 141 阅读 · 0 评论 -
Java实现扑克牌游戏
一副牌有52张(除去大小王),总共有13种牌,每种牌有4中花色,首先我们要先构造出一副完整的牌,然后对牌进行打乱,最后可以发给j个人,每个人发i张牌package datastruct;import java.util.ArrayList;import java.util.Collection;import java.util.List;import java.util.Random;public class Poker { //一副牌13种,每种牌有4中suit,用list.原创 2021-08-13 17:45:41 · 840 阅读 · 0 评论