自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 问答 (1)
  • 收藏
  • 关注

原创 阿凡达大战竟惊刚狼

阿凡达谁知道

2022-12-21 18:27:16 820 1

原创 经典算法题

算法

2022-06-15 08:51:29 191

原创 优先队列(二叉堆,大根堆,小根堆,完全二叉树)

我们可以根据这样特殊的性质,只用一个数组就能来存储一颗完全二叉树,这样的操作对于构造优先队列来说效率是非常高的,我们可以采用大(小)根堆的方式构造。暂时只记录一下笔记

2021-06-29 16:38:56 215

原创 LeetCode每日一刀---

我这里采用的是HashMap写法,运用了一下forEach方法,挺好用的class Solution { int value = 0 ; int key = 0 ; public int majorityElement(int[] nums) { int x = nums.length / 2 ; HashMap<Integer,Integer> map = new HashMap<>(); for(in

2021-06-16 17:59:00 106

LeetCode每日一刀---

中心扩展的方式去寻找,class Solution { public String longestPalindrome(String s) { if (s == null || s.length() == 0)return ""; int left = 0 ; int right = 0 ; String str = s.charAt(0)+""; for(int index = 0 ; index < s.l.

2021-06-15 21:26:36 120

原创 LeetCode每日来一刀

本人写的暴力算法勉强通过class Solution { public int lengthOfLongestSubstring(String s) { if(s.equals(""))return 0; int currentMax_length = 1 ; int Max_length = 1 ; ArrayList<Character> arraylist = new ArrayList<>()

2021-06-08 15:48:18 66

原创 LeetCode每日来一刀----

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * }.

2021-06-07 17:44:37 83

原创 Validator字段校验的源码(算法实现的代码)出处

2021-06-05 14:16:37 144

原创 将二叉树展开为单向链表(原地操作二叉树)

以先序遍历的结点顺序为链表的结点顺序题目来自Leetcode-----114以下是我个人的写法,并不像答案那么简练,但构建的过程会更加清晰。(有错误请指出谢谢大家!)首先我来讲解我的思路,本地操作,故不存在new新结点的行为。那么如何实现呢?1.首先确定遍历方式-----先序遍历(dfs)2.我们以二叉树结点的right作为链表结点的next3.问题就在于如何在dfs的过程中把链表构建出来: 1)设置两个临时指针保留当前结点的左右孩子,并将当前结点的左右孩子销毁 TreeN

2021-04-20 17:09:55 277

原创 BP—and—KMP

BP(暴力匹配) 假设我们现在有两个字符串: //文本串 String s = "BBC ABCDAB ABCDABCDABDE"; //待匹配字符串 String p = "ABCDABD";整个算法的分析过程: 首先我们需要两个指针用于扫描两个字符串: //扫描字符串s int i = 0 ; //扫描字符串p int j = 0 ; 流程如下:...

2021-04-16 21:19:17 171

原创 基于哈夫曼编码实现的压缩文件的程序(后期可以做个web项目)

代码字里行间都有解释可以看看这中间借鉴了别人的一些算法1.压缩package com.example.Zip_.HuffmanCode.zip;import java.io.*;import java.util.*;/* 这里我会将压缩的文件写入 xxx.zip文件中(创建File对象用于创建次文件) */public class Zip { public static void main(String[] args) throws IOException{

2021-04-12 01:52:27 98

原创 利用哈夫曼编码压缩文本---java实现

1)步骤一:统计文本词频并获得权值2)步骤二:通过获得的词频权值构建哈夫曼树3)步骤三:通过哈夫曼树获得哈夫曼编码4)步骤四:通过哈夫曼编码构建一个哈夫曼表(哈希表HashMap)key = 字符对应的ASUII码,value = 对应的哈夫曼编码5)步骤五:通过哈夫曼编码获得哈夫曼编码字符串(就是将所有的哈夫曼编码字符串拼接)6)步骤六:我们按照,每八个01串切割一次并转换成十进制数存入byte[ ]数组中,的规则去获得我们的压缩后的byte数组,即压缩完毕。这里我们需要注意如果最后剩下的01串

2021-04-01 16:49:18 306 2

原创 统计词频的方法--java

这里我将为接下来的哈夫曼压缩文件做前期工作介绍一下我自己是如何统计词频的,这里我用到HashMap以及entrySet()以及字符串切割public static int[] getvalue(String s){ HashMap<Character,Integer> map = new HashMap<>(); for (int i = 0; i < s.length(); i++) { if(!map.conta

2021-03-31 14:58:43 118

转载 哈夫曼树以及文件压缩的实现

链接: 我觉得一个不错的文章:https://blog.csdn.net/weixin_44634197/article/details/109077445?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161650116416780262524679%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=16165011

2021-03-23 20:08:33 72

原创 哈夫曼树的创建及其概念

1.什么是哈夫曼树?哈夫曼树是一颗特殊的二叉树,具体如何特殊,说明如下:首先我们需要理解几个概念:1)带权值路径总和 = w1*k1 + w2*k2 + w3*k3 +......+ wn*kn 这里的wn指的是第n个带权值结点,而kn是第n棵带权值结点的深度(距离根结点的最短路径)假设现在给我们如下带权值结点:int[] value = new int[]{3,1,2,4,5};...

2021-03-23 19:40:55 156 1

原创 验证回文串(双端队列实现)

我给出一个很巧妙的实现方法1)先遍历存储到双端队列中(统一接受小写字符或者数字)2)再通过removeFirst()和removeLast()方法来判断是否为回文串思路十分简单,但要注意队列何时为空,要分字符串长度是奇还是偶数长度class Solution { public boolean isPalindrome(String s) { //数字 0 -9 ----->48 - 57 A - Z 65 - 90 a - z 97 - 122 空格 32 .

2021-03-17 12:21:44 311

原创 子集,全排列的问题

子集的求解方法class Solution { int[] nums ; public List<List<Integer>> subsets(int[] nums) { this.nums = nums ; List<List<Ingeter>> Subsets = new LinkedList<>(); HS(0,Subsets,new LinkedList<Intege

2021-03-16 00:19:05 140

原创 二进制求和

我提供一个很容易理解的算法class Solution { public String addBinary(String a, String b) { String max = Max(a,b); int max_index = max.length()-1; String min = Min(a,b); int min_index = min.length()-1; Stack<String> stack

2021-03-14 17:45:21 72

原创 初体验--0-1背包问题(DP研究)

DP(我的理解):动态规划的思想于分治法的思想极其相似,但也有一定的区别。相同点:我们解决问题的策略核心思想上是将一个我们待处理问题,逐步分解成一个子问题求解的过程,再又这个子问题逐步分解成另一个子问题,以此类推,我们通过求解子问题的结果去求解父问题。(相当于一个逆向思考的过程)。不同点:分治法来讲,每一层的子问题都都不会对父问题的状态或结果产生影响,而动态规划,每一个子问题的求解情况会直接影响到父问题的求解情况,进而互相影响。经典背包问题:这里我们通通不使用贪心算法去解决!!问题描述:一个背

2021-03-12 22:24:41 136

原创 根据前序和中序遍历还原二叉树

Leetcode----105/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, Tree

2021-03-11 23:35:28 87

原创 第十届蓝桥杯真题更新-----特别的数

非常简单,就看代码把class Text{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int sum = 0 ; for(int i = 0 ; i <= n ; i ++) { if(isok(i)) { sum .

2021-03-11 00:01:04 73

原创 斐波那契数列的两种优化

1.最直白的解决手段,递归递归存在许多子问题的重复计算问题,时间复杂度较高。public class FBSL{ int n ; public FBSL(int n ){ this.n = n ;} public static int FB(int n){ if(n > 2)return n; return FB(n-1)+FB(n-2); }}还有一种记忆化搜索的优化方式首先我们需要一个全局的哈希表来存储当你第n个数所对应的前两个数的和。class FB{

2021-03-10 20:13:58 239

原创 柠檬水找零-----LeetCode(860)

这一题我刚开始以为是所有顾客同时来付款,搞得我还写回溯递归,搞半天都写不对,仔细一看这题tm客人是一个一个来付款的。。。。算法分析:这题呢就是典型的贪心思维,你就看当前来的客人你能不能找零就对了。不能就false。class Solution { public boolean lemonadeChange(int[] bills) { int money_5 = 0 ; //找零 0 int money_10 = 0 ; //找零 5 .

2021-03-10 18:49:43 47

原创 第十届蓝桥杯5.迷宫----BFS

package LeetCode.DFS_and_广度优先.BFS;import java.util.LinkedList;import java.util.Queue;public class MazeMinPath { //存储整个迷宫 int[][] map ; // 方向由两个一维数组表示 ---- 下左右上 int[] dY = {0,-1,1,0}; int[] dX = {1,0,0,-1}; public Ma

2021-03-10 12:47:53 140

原创 迷宫最短路径的问题----BFS(JAVA实现)

BFSpackage LeetCode.DFS_and_广度优先.BFS;import java.util.LinkedList;import java.util.Queue;public class MazeMinPath { //存储整个迷宫 int[][] map ; // 方向由两个一维数组表示 ---- 下左右上 int[] dY = {0,-1,1,0}; int[] dX = {1,0,0,-1}; publi

2021-03-10 11:01:59 1310

原创 (员工的重要性)----LeetCode

LeetCode -----690一·解决方法就是递归与回溯 //先介绍一个并未进行算法优化的解法/*// Definition for Employee.class Employee { public int id; public int importance; public List<Integer> subordinates;};*/class Solution { int k; int sum; int coun

2021-03-04 15:57:22 77 1

原创 (二叉搜索树结点最小距离)------LeetCode

LeetCode------783心得分享:这一题重在理解 搜索二叉树--------有序这个特点---->要么存入任意遍历存储数组中后再排序,或者中序遍历,由搜索二叉树的天然结构我们可以知道中序遍历天然有序,是从小到大排序的。那么这一题就十分简单了。这是一种较理解但并不简洁的写法/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode lef

2021-03-03 20:25:14 101 1

原创 二叉树的坡度

LeetCode----563思路:1.首先需要理解题意--->某颗二叉树的坡度等于所有结点的坡度之和, 结点的坡度等于左子树所有结点的值的和减去右子树的所有结点的值的和。代码如下:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} *

2021-03-02 19:38:58 66

原创 二叉树的所有左(右)叶子的val的和

来自LeetCode----->404解决的方法如下:核心思路--------父亲的右孩子不为当前叶子本身,即为我们需要的叶子(首先筛选出叶子结点)叶子----->Node.left == null && Node.right == null/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * T

2021-03-02 12:19:33 231

原创 N叉树的最大深度

LeetCode-----编号559DFS遍历整课N叉树/*// Definition for a Node.class Node { public int val; public List<Node> children; public Node() {} public Node(int _val) { val = _val; } public Node(int _val, List<Node> _chi

2021-03-01 22:24:36 227

原创 C#学习入门基础知识总概-----学习笔记

这里写目录标题一)------>首先我们以HelloWorld来认识C#1)--->以下每一句的具体含义需要理解去认识C#语言2)-->最基础方面的内容与其他语言是类似的暂未完结~~~~~·一)------>首先我们以HelloWorld来认识C#1)—>以下每一句的具体含义需要理解去认识C#语言 初识C#:(Hello World程序编写) ***//using类似于JAVA语法中的import导包using System; ***//namespace我的

2021-03-01 14:07:30 930

原创 web前端方面知识小结,实现一个注册及登陆界面响应的接收处理并连接mysql(Mac环境下)

1.tomcat服务器的下载安装配置2.idea中建立web工程项目,并部署tomcat3.在webapp包下编写前端网页的界面,配置xml文件。1)登陆界面<%-- Created by IntelliJ IDEA. User: lemt Date: 2021/2/15 Time: 12:08 下午 To change this template use File | Settings | File Templates.--%><%@ page conte

2021-02-16 13:41:22 198

原创 如何从数据库中拿取数据来还原一颗指定用户的多叉树

代码如下:package 算法and数据结构.数据结构.多叉树.文件管理系统.从数据库中拿取数据并建树;import 算法and数据结构.数据结构.多叉树.文件管理系统.Node.Node;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import static 算法and数据结构.数据结构.多叉树.文件管理系统.连接数

2021-01-29 21:36:10 104 2

原创 在数据库中建立一颗多叉树(其中一种方法)

代码如下:(递归建立)package 算法and数据结构.数据结构.多叉树.文件管理系统.数据存储;import 算法and数据结构.数据结构.多叉树.文件管理系统.Node.Node;import java.sql.Connection;import java.sql.SQLException;import java.sql.Statement;import static 算法and数据结构.数据结构.多叉树.文件管理系统.连接数据库.getMySQL.getConnection;p

2021-01-29 21:31:48 365

原创 一个用户创建以及用户登陆的简易实现(与mysql交互)

1.用户注册可以将密码的注册限制增加(这里没有过多要求)package login;import java.sql.*;import java.util.Scanner;public class Login { static String insert="insert into login (username,password) values ('{','{')"; public static void main(String[] args) { Scanner

2021-01-27 20:23:35 238

原创 使用IO流实现任意文件的复制粘贴操作

代码如下:package IO流.复制粘贴;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class InputAndOutput { public static void main(String[] args) { FileInputStream input=null; FileOutputStream o

2021-01-27 20:17:42 449

原创 SQL语句以及通过JDBC连接idea

这里写目录标题增删查改***idea如何连接mysql今日sql语句的学习:假设我们有如下的表:增1.增---->可以对:字段,表,数据 。进行增加的操作增加字段:(基本都是在navicat可视化界面添加) alter 表名 add 字段名 类型 ;增加表:(基本都是在navicat可视化界面添加) create table 表名( 字段名 数据类型 可约束条件 ,。。。。。 );增加数据:有2种方式1. insert into 表名 values(id,nam

2021-01-25 23:23:09 136

原创 数据库学习开端mac环境下

(1)预备工作1.MySQL数据库管理系统的安装:(开源可免费下载) 数据库管理系统有多种多样,目前互联网公司应用最广泛的是MySQL。开发mysql的公司现在已经被Oracle公司收购 Linux操作系统也可以在Oracle官网下载(同样开源,也有付费版)安装地址如下:https://dev.mysql.com/downloads/mysql/链接: 点击此处前往安装地址下载好之后是这样 后面你需要完成两个步骤(自己百度): 1.如何用Dos窗口(终端)连接my

2021-01-24 21:40:24 251 6

原创 Command_System

描述这是最近写的一个文件管理系统 当然在这的文件指的是String类型字符串这相当于一个雏形吧底层实现原理(1)数据结构我这里实现了一个双向的多叉树(2)一个命令解析的封装类(3)一个命令输入并对应实现操作的类(4)一个main方法启动程序结点数据存储结构import java.util.LinkedList;/** * @author Doug Li Yong Jie * --->结点的数据存储结构 * */public class Node {

2021-01-23 17:05:17 231 4

原创 二叉树相关习题复习2020/1/18

习题均来自LeetCode这里写目录标题习题均来自LeetCode(1)相同的树 题号--100(2)对称二叉树 题号--101(3)二叉树的最大深度 题号--104(4)二叉树的层序遍历 题号--107(5)二叉树的最小深度 题号--111总结:中难题我唯唯诺诺简单题我重拳出击嘻嘻(1)相同的树 题号–100这一题十分简单没啥好说的就简单的递归遍历判断每个结点是否相同(下图:耗时+消耗内存)/** * Definition for a binary tree node.

2021-01-19 01:49:43 115

空空如也

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

TA关注的人

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