自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Java线程池

为什么需要线程池呢? 想象这么一个场景: 在学校附近新开了一家快递店,老板很精明,想到一个与众不同的办法来经营。店里没有雇人,而是每次有业务来 了,就现场找一名同学过来把快递送了,然后解雇同学。这个类比我们平时来一个任务,起一个线程进行处理的模 式。 很快老板发现问题来了,每次招聘 + 解雇同学的成本还是非常高的。老板还是很善于变通的,知道了为什么大家都要 雇人了,所以指定了一个指标,公司业务人员会扩张到 3 个人,但还是随着业务逐步雇人。于是再有业务来了,老板 就看,如果现在.

2021-09-23 22:08:03 131

原创 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 141

原创 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 198

原创 二叉树进阶面试题

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 137

原创 二叉树基础面试题

1. 二叉树的前序遍历。2. 二叉树中序遍历 。3. 二叉树的后序遍历 。4. 检查两颗树是否相同。5. 另一颗树的子树。6. 二叉树最大深度。7. 判断一颗二叉树是否是平衡二叉树。8. 对称二叉树。9.层序遍历10.判断一棵树是不是完全二叉树//给你二叉树的根节点 root ,返回它节点值的 前序,中序,后序 遍历。把遍历结果放入顺序表中*///层序遍历二叉树(孩子树)void levelOrderTraversal1(Node root){ Que

2021-08-17 20:52:31 102

原创 树的概念及二叉树实现的基本操作

树的 概念 :树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 有一个特殊的节点,称为根节点,根节点没有前驱节点 除根节点外,其余节点被分成M(M > 0)个互不相交的集合T1、T2、......、Tm,其中每一个集合 Ti (1 <= i <= m) 又是一棵与树类似的子树。每棵子树的根节点有且只有一个前驱,可以有0个或多个后继。树是递归定义的。.

2021-08-15 21:17:47 171 1

原创 实现队列(链表实现)和循环队列(数组实现)

队列的概念:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)入队列:进行插入操作的一端称为队尾(Tail/Rear)出队列:进行删除操作的一端称为队头 (Head/Front)实现队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据效率会比较低。1.使用链表实现队列package queue;public class My...

2021-08-14 20:07:25 381 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 107 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 133

原创 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 818

原创 完成双链表的增删改查

下面是定义Node类,双链表和单链表是差不多的,只是双链表的对象中多了一个prev的概念,prev是该节点的前一个节点,next和单链表一个代表着该节点的下一个节点。一下是双链表的定义类和对双链表操作的一些方法,class Node { public int data; public Node prev; public Node next; public Node() { } public Node(int data) { t.

2021-08-03 22:54:12 99

原创 完成单链表的增删改查等功能

链表和顺序表不同,顺序表的每个元素是存在数组里面的,而链表的每个元素都是一个对象,完成单链表的增删改查等操作是需要了解面向对象的含义的,但是写单链表的目的主要也是提高面向对象的这种思维方式。创建一个Node类,然后可以再main方法里头new出节点对象来,这个对象包含两个信息,一个是data,另外一个是Node 型的next,这个next之所以是Node是因为链表是通过节点与节点相连的,一个node的前驱和后继都是节点或者是空。class Node { public int data.

2021-08-03 01:32:32 129

原创 n阶汉诺塔的实现

代码量不大,但是不容易理解。public class Test { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("请输入盘子数目"); int n = s.nextInt(); hanNuoTa(n,1,2,3); } public static void

2021-08-02 01:17:30 271

原创 实现三子棋

这些代码块所包含的内容完全可以实现一个无BUG的三子棋,哪一步走的不规范都会提示且重写代码。主要的方法调用都放在了main方法里面细节在代码内有注释public static void main(String[] args) { menu(); Scanner s = new Scanner(System.in); System.out.println("请输入:"); while (s.hasNextLine()) {

2021-07-28 03:36:50 233

原创 猜数字游戏

C语言中的猜数字游戏,比其他语言麻烦一点的是随机数不好给出,为了使随机数每次都不一样,这里引用时间戳这个概念。时间戳:时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。 通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。时间可以转化成时间戳,因为时间措施随着时间的流动而改变的。int ret = rand()%100+1;//随机生成0-32767 0-RAND_MAX %100+1是为了猜1到100之间的数..

2021-07-21 21:49:38 68

原创 从两边更改数字符串数组中的内容

当一个数组假设为char arr1[]="welcom to bit !!!!!!",另一个数组为char arr2[] = "####################";我们要把数组arr2慢慢的从两边,每次以一个字符的速度改成arr1,接下来看代码是怎么实现的。#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<windows.h>int main() { char arr1[] = "welcom.

2021-07-21 21:09:33 110

原创 电脑关机时间

利用代码的执行,操作电脑的关机时间。比如你要整蛊你的一位好友,让他在1分钟内打出我是猪,否则电脑就会关机,下面来看看代码吧。#include<stdio.h>#include<windows.h>int main() { char input[20] = { 0 }; system("shutdown -s -t 60");//60代表的是即将关机的秒数 while (1) { printf("请输入我是猪,不然无法停止关机"); scanf("%是s".

2021-07-21 20:55:53 97

原创 二分法查询数组元素下标

当要从数组中查找 一个元素的时候,我们通常会使用遍历的方法先搜索出要查找的元素x,然后使用循环,当搜素到arr[i]=x时,输出此时x的值就是数组元素下标。遍历数组查找元素下标#include<stdio.h>int main() { int arr[] = { 1,2,3,4,5,6,7,8,9 }; int i = 0; int x; int flag = 0;//定义这个flag是为了判定能否找到arr[i]=x,找到了flag就为1. printf("请输入要.

2021-07-21 20:31:35 1447

原创 【献给自己的第一篇博客】 喜欢编程

这是我从小就喜欢解决问题,长大了发现利用代码可以更搞笑的解决问题,所以喜欢上了编程。以后在我的博客里会出现的东西​​​​​​以后每学完一个阶段的知识,我都会通过写一篇博客来复习它,用的时间可能不会很长,写的可能不会很详细,但是都是一些我学到的,感觉挺重要的东西。接下来我的学习目标我的规划是向java方向发展,首先接下来的学习是跟着直播课程学习C语言基础的东西,在课余时间花更多的时间来学习javase,等学完javase再制定下一阶段目标学习编程时间规划每天至少花6个小时以上的时间

2021-07-16 18:02:47 101

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除