自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单词拆分

题目给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。示例 2:输入: s = “applepenapple”, wordDict =

2021-04-13 09:00:32 210 1

原创 迷宫求解问题

题目描述用一个m×n的矩阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对给定的迷宫,求出找到的第一条从入口到出口的通路,或得到没有通路的结论。我们指定:(1) 迷宫的入口为矩阵的左上角(1,1),迷宫的出口为右下角(m,n);(2) 路径的探索顺序依次为"东南西北"(即:右下左上)。输入第一行输入两个整数,空格间隔,分别表示矩阵的行数m和列数n;接下来的连续m行,输入迷宫矩阵的信息。输出求得的通路以三元组(i,j,d)的形式输出。其中:i,j指示迷宫的一个坐标;d表示走

2021-04-06 15:11:21 2167 1

原创 求解马鞍点问题

题目描述若矩阵An*m中某个元素A[i][j]是矩阵第i行中值最小的元素,同时又是第j列中值最大的元素,则称元素A[i][j]是矩阵中的一个马鞍点。设以二维数组存储矩阵,编写算法求矩阵A中的所有马鞍点,算法的时间复杂度要尽量的低。注意当最大值(最小值)并列相等时,会出现多鞍点的情况。输入第一行输入矩阵的总行数M和总列数N,以空格间隔。之后的M行,依次输入矩阵的各行数据,以空格间隔。输出若有马鞍点,则以行序为主序,依次输出各个马鞍点。每个马鞍点以(row,col,val)的形式输出,其中row

2021-04-06 15:07:37 2473

原创 给定权值,哈弗曼编码、译码

题目描述假设某通信报文的字符集由A,B,C,D,E,F这6个字符组成,它们在报文中出现的频度(频度均为整数值)。(1)构造一棵哈弗曼树,依次给出各字符编码结果。(2)给字符串进行编码。(3)给编码串进行译码。规定:构建哈弗曼树时:左子树根结点权值小于等于右子树根结点权值。生成编码时:左分支标0,右分支标1。输入第一行:依次输入6个整数,依次代表A,B,C,D,E,F的频度,用空格隔开。第二行:待编码的字符串第三行:待译码的编码串输出前6行依次输出各个字符及其对应编码,格式为【字符:

2021-04-06 10:05:42 1524

原创 实现求最小生成树的克鲁斯卡尔算法(Kruskal)

题目描述已知有权无向图G,利用克鲁斯卡尔算法求出该图的最小生成树。输入第一行输入两个正整数n和m(空格间隔), 分别表示图G的顶点总数和边的总数。第二行连续输入n个字母,分别表示n个顶点的信息。第三行连续输入m条边的信息,每条边的输入格式为(v1,v2,w),表示一条关联顶点v1和v2的边,其权值为w。输出按边上权值由小到大的顺序依次输出各个边。输出边的时,若该边被选中,则在该边信息之后输出1,否则输出0。例如:(v1,v2,w,1) 表示与顶点v1和v2相关联的边,权值为w,被选中。

2021-04-06 09:57:09 1741 1

原创 C语言-求二叉树非叶子节点个数

代码#include<stdlib.h>#include<stdio.h>typedef struct Node{ char data; struct Node* Lchild; struct Node* Rchild;}BiTNode, *Bitree;void creatFirst(Bitree *T){ char ch; ch = getchar(); if (ch == '#') *T = NULL; else { *T = (Bit

2021-04-06 01:17:31 3386

原创 C语言-二叉树的建立以及前,中,后序遍历

代码#define MAXSIZE 100#include<stdlib.h>#include<stdio.h>typedef struct Node{ char data; struct Node* Lchild; struct Node* Rchild;}BiTNode, *Bitree;typedef struct stack{ Bitree data[MAXSIZE]; int top;}Seqstack;// 初始化栈Seqstack*

2021-04-06 01:13:58 174

原创 C语言-实现扫雷游戏

源码game.h#pragma once#include<stdlib.h>#include<stdio.h>#include<time.h>#define ROW 9#define COL 9#define ROWS ROW+2#define COLS COL+2#define EASY_MINE 10//初始化棋盘void InitBoard(char board[ROWS][COLS], int row, int col, char

2021-04-06 00:54:59 84

原创 C语言-约瑟夫环问题

题目n个人排成一圈,按顺时针方向依次编号1,2,3…n。从编号为1的人开始顺时针"一二三…"报数,报到m的人退出圈子。这样不断循环下去,圈子里的人将不断减少。最终一定会剩下一个人。问依次出圈人的顺序为什么?代码#include <stdio.h> #include <stdlib.h>typedef struct node{ int num; int mima; struct node *next;} node, *linklist;linklist tai

2021-04-06 00:44:02 1839

Java实现简单HTTP服务器+Servlet容器(缩减版)

Java实现简单HTTP服务器(缩减版)0. 项目展示1. 项目简介2. 项目前置知识2.1 Http协议2.2 TCP协议2.3 Socket编程2.4 Java-IO2.5 Tomcat 相关2.6 servlet 相关3. 项目总体设计4. 项目详细设计4.1 com.zxf.standard 内容设计4.2 com.zxf.webapps 内容设计4.3 com.zxf.tomcat 内容设计 (重点设计)4.3.1 initServer() 方法设计4.3.2 startServer() 方法设计

2021-04-04 11:27:54 361

原创 Java常见设计模式 以及 架构设计

目录1. JDK中几个常用的设计模式2. 什么是设计模式3. 静态代理、JDK动态代理以及CGLIB动态代理4. 单例模式5. 工厂模式6. 观察者模式7. 装饰器模式1. JDK中几个常用的设计模式单例模式(Singleton pattern)用于Runtime,Calendar和其他的一些类中。工厂模式(Factory pattern)被用于各种不可变的类如 Boolean,像Boolean.valueOf,观察者模式(Observer pattern)被用于 Swing 和很多的事件监听中。装饰器

2021-03-27 18:47:23 402 2

原创 【剑指offer -- java】机器人的运动范围

题目地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输出:3示例 2:输入:m

2021-03-26 20:04:36 114 1

原创 【剑指offer -- java】矩阵中的路径

题目请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,"b",“c”,“e”],[“s”,"f","c",“s”],[“a”,“d”,"e",“e”]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第

2021-03-26 17:24:51 113

原创 【剑指offer -- java】旋转数组中的最小数字

题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-

2021-03-26 14:23:25 94

原创 【剑指offer -- java】青蛙跳台阶问题

题目一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof

2021-03-25 23:23:02 66

原创 【剑指offer -- java】斐波那契数列

题目写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输

2021-03-25 22:01:23 70

原创 【剑指offer -- java】用两个栈实现队列

题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appendTai

2021-03-25 14:50:51 65

原创 【剑指offer -- java】重建二叉树

题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:3/ \9 20 / \15  7分析前序遍历列表:第一个元素永远是 根节点 (root)中序遍历列表:根节点 (root)左边的所有元素都在根节点的左子树,右边的所有元素都在根节点的右子树通过前序遍历列表确定

2021-03-24 17:44:49 94

原创 【剑指offer -- java】从尾到头打印链表

题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]分析扫描两趟,第一趟出链表长度第二趟对数组赋值这里第二趟用了递归代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; }

2021-03-24 16:58:50 80

原创 【剑指offer -- java】替换空格

题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof代码class Solution { public String replaceSpace(String s) { return s.replace(" ", "%

2021-03-24 16:28:50 64

原创 【剑指offer -- java】二维数组中的查找

题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。

2021-03-24 16:13:20 95

原创 【剑指offer -- java】数组中重复的数字

题目找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3分析直接使用hash表代码/** * 数组中重复的数字 */public class Solution { public int findRepeatNumber(int[] nums

2021-03-23 20:21:36 79

原创 【算法题解:java】顺时针打印矩阵

题目对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。测试样例:[[1,2],[3,4]],2,2返回:[1,2,4,3]分析注意只有一行或者一列时的特殊情形代码public class Printer { public int[] clockwisePrint(int[][] mat, int n, int m) { // write

2021-03-23 17:06:23 112

原创 【算法题解:java】左右最值最大差

题目给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0…K],右部分A[K+1…N-1],K可以取值的范围是[0,N-2]。求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值,最大是多少?给定整数数组A和数组的大小n,请返回题目所求的答案。测试样例:[2,7,3,1,1],5返回:6分析仔细审题,可以发现数组中的最大数无论分在左边还是右边,都会是这一边的最大数,而为了使两边的差值最大,就必须使另一边的最大数尽可能的小,而每一边都至少会有一

2021-03-23 17:01:39 298

原创 JavaWeb-Servlet整理2

Servlet5. Http状态码5.1 HTTP 状态码列表5. Http状态码5.1 HTTP 状态码列表以下是可能从 Web 服务器返回的 HTTP 状态码和相关的信息列表:代码100101消息ContinueSwitchingProtocols描述只有请求的一部分已经被服务器接收,但只要它没有被拒绝,客户端应继续该请求。服务器切换协议。200 OK 请求成功。201 Created 该请求是完整的,并创建一个新的资源。202 Accepted 该请求被接受处理,但是

2021-03-22 00:47:01 139

原创 @WebServlet注解访问报404

web-app的version是否大于3.0web-app标签3.0以上版本才可以使用servlet的注解的metadata-complete=“false”该属性为true,则容器在部署时只依赖部署描述文件,忽略所有标注,如果不配置该属性,或者将其设置为false,则表示启动注解支持。不过注解和配置web.xml的方式不要同时使用否则会出错。...

2021-03-21 22:48:14 879

原创 JavaWeb-Servlet整理1

Servlet1. Servlet简介1.1 什么是servlet1.2 Servlet定位图1.3 Servlet核心作用1.4 Servlet标准 API核心包(在线文档)Servlet API有以下3个Java包:2. Servlet常见方法与生命周期2.1 概览3.2 HttpServlet处理Http请求1. Servlet简介1.1 什么是servlet概念: Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请

2021-03-21 14:58:03 85

原创 【算法题解:java】求和

目录标题题目分析代码题目输入两个整数 n 和 m,从数列1,2,3…n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来输入描述:每个测试输入包含2个整数,n和m输出描述:按每个组合的字典序排列输出,每行输出一种组合示例1输入5 5输出1 42 35分析假设问题的解为F(n, m),可分解为两个子问题 F(n-1, m-n)和F(n-1, m)。对这两个问题递归求解,求解过程中,如果找到了符合条件的数字组合,则打印出来 例如 1, 2, 3, 4,

2021-03-18 16:07:14 527 1

原创 【算法题解:java】电话号码

目录标题题目代码题目上图是一个电话的九宫格,如你所见一个数字对应一些字母,因此在国外企业喜欢把电话号码设计成与自己公司名字相对应。例如公司的Help Desk号码是4357,因为4对应H、3对应E、5对应L、7对应P,因此4357就是HELP。同理,TUT-GLOP就代表888-4567、310-GINO代表310-4466。NowCoder刚进入外企,并不习惯这样的命名方式,现在给你一串电话号码列表,请你帮他转换成数字形式的号码,并去除重复的部分输入描述:输入包含多组数据。每组数据第一行包

2021-03-18 15:52:28 558

原创 Tomcat的基本使用以及基本原理

Tomcat的基本使用1. Tomcat的安装1.1 安装1.2 Tomcat 文件夹功能讲解1.3 基本使用2. 演示: Servlet 的 Hello World —— 不使用 IDEA3. 演示: Servlet 的 Hello World —— 使用 IDEA4. Tomcat4.1 相关概念4.2 HttpServlet 和 Servlet 的关系4.3 Tomcat 的作用及定位1. Tomcat的安装Tomcat是一个免费的开源的Servlet容器,它是Apache基金会的Jakarta项

2021-03-17 22:13:40 158

原创 Java-Socket编程实现简易聊天室

Java-Socket编程实现简易聊天室(TCP)实现一个服务器接收多个客户端测试:首先启动服务器,然后启动三个客户端,输入三个不同的用户名,分别在聊天室发消息看其他客户端是否能接收到消息效果如下图:一号发消息可以在二号和三号客户端接收到消息服务器设计import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWrite

2021-03-14 17:06:05 1459 3

原创 JDBC常用套路-基于命令行的博客小项目

目录1. 项目简介2. 项目设计数据库设计:通用类设计:功能类设计:(统一继承Action接口)3. 项目测试1. 项目简介项目地址:https://github.com/Madrid-7/LinuxProject/tree/main/MySQL-BOKE该项目是为了练习JDBC的简单套路,在命令行实现简单的博客系统。该系统实现用户注册,用户登录,发表文章(需要先登录),查看文章列表,查看指定文章内容,评论文章,点赞文章等功能。Created with Raphaël 2.2.0Main打印菜单打

2021-03-06 21:23:20 119

原创 Java-基础IO整理

文章目录Java-IO1. File文件操作类1.1 File类使用1.2 File类常用方法-基本文件操作1.3 File类常用方法-目录操作1.4 File类常用方法-文件属性操作1.5 File类常用方法-其他操作1.6 综合-打印指定文件下目录列表2. 流2.1 流的概念2.2 什么是输入输出流2.3 什么是字节流,字符流2.4 字节流2.5 字符流2.6 字节流对比字符流2.7 字符字节转换流2.8 综合-复制目标到指定目录下3. 序列化与反序列化3.1 什么是序列化和反序列化3.2 什么时候需要

2021-02-09 14:57:29 113 2

原创 【算法题解:java】简单错误记录

目录标题题目分析代码题目开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。处理:1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并)2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并)3.输入的文件可能带路径,记录文件名称不能带路径输入描述:一行或多行字符串。每行包括带路径文件名称,行号,以空格隔开。

2021-02-03 01:33:30 274

原创 【算法题解:java】说反话

目录标题题目分析代码题目给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入描述:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。输出描述:每个测试用例的输出占一行,输出倒序后的句子。示例输入Hello World Here I Come输出Come I Here World Hello分析按空格分割后

2021-02-03 01:29:22 167

原创 【算法题解:java】二叉树平衡检查

目录标题题目分析代码题目平衡的定义如下,已知对于树中的任意一个结点,若其两颗子树的高度差不超过1,则我们称该树平衡。现给定指向树根结点的指针TreeNode* root,请编写函数返回一个bool,表示该二叉树是否平衡。分析平衡二叉树是通过左右子树的高度来判断是否为平衡二叉树的,所以我们首先想到的是如何求一个树的高度,求一个树的高度可以用递归求解,每次求出左右子树的最大高度再加1便是父节点的高度,这样递归下去,便可以求出任何一颗树的高度。可以求出任何一个节点的高度,那么通过再次遍历二叉树,判断任何

2021-01-30 20:32:11 164

原创 【算法题解:java】密码验证合格程序

目录标题题目代码题目密码要求:1.长度超过8位2.包括大小写字母.数字.其它符号,以上四种至少三种3.不能有相同长度大于2的子串重复输入描述:一组或多组长度超过2的子符串。每组占一行输出描述:如果符合要求输出:OK,否则输出NG示例1输入021Abc9000021Abc9Abc1021ABC9000021$bc9000输出OKNGNGOK代码import java.util.Scanner;public class Main { pub

2021-01-30 11:53:10 344 1

原创 【算法题解:java】寻找第K大的数

目录标题题目分析代码题目有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。分析这题应该是用快排的思想:例如找49个元素里面第24大的元素,那么按如下步骤: 1.进行一次快排(将大的元素放在前半段,小的元素放在后半段),假设得到的中轴为p 2.判断 p - low + 1 == k ,如果成立,直接输出a[p],(因为前半段有k - 1个大于a[p]的元素,故a[p]为第K大的元素)

2021-01-28 17:10:58 1755 1

原创 【算法题解:java】统计回文

目录标题题目分析代码题目统计回文“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。例如:A = “aba”,B = “b”。这里有4种把B插入A的办法:在A的第一个字母之前: “b

2021-01-28 16:23:26 180 3

原创 利用Ansible对服务器自动化部署httpd,以及配置和启动

Ansible自动化部署1. Ansible的安装与配置2. Ansible Playbook编写3. 服务器准备4. ansible自动化部署1. Ansible的安装与配置centos/rehl下:添加EPEL源,yum方式安装ansible在自行配置yum源后:sudo yum install -y ansibleUbuntu下:sudo apt-get install ansible测试:vim /etc/ansible/hosts #指定远程主机ansible管理主机

2021-01-17 02:00:12 1745

空空如也

空空如也

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

TA关注的人

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