自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 56. 合并区间 LeetCode(详细讲解 & 图示 & 注释)

原题地址:56. 合并区间 LeetCode题目大意:给出若干个区间,合并重叠的区间,返回一个合并后的区间的集合。思路解析:class Solution {public: vector<vector<int>> merge(vector<vector<int>>& intervals) { // 区间的个数 int len = intervals.size(); // 根据左边界大小快排

2021-09-29 17:30:38 797

原创 剑指 Offer 10- I. 斐波那契数列

原题地址:剑指 Offer 10- I. 斐波那契数列题目中有说最终结果可能比较大,需要对1000000007取模,因此求fib(n)的过程中很可能就会超出int的范围,所以我们需要先根据取模运算的一个原理对中间的数据进行处理,然后再求对应的结果。class Solution { public int fib(int n) { if (n == 0) { return 0; } if (n == 1) {

2021-09-23 11:17:20 123

原创 归并排序-(C语言实现)

#include <stdio.h>#include <stdlib.h>/**整体思想:分治 + 递归*/// 归并两个已经有序的数组,L、M和R分别是左边界、分界点和右边界// 这里将右边数组的第一个元素的下标作为了分界点void merge(int array[], int L, int M, int R) { // 求出左右两部分数组的大小 int LEFT_SIZE = M - L; int RIGHT_SIZE = R - M + 1

2021-09-21 16:23:20 382

原创 剑指 Offer 32 从上到下打印二叉树 (系列题目,包含Ⅰ~Ⅲ)

系列题目1:剑指 Offer 32 - I. 从上到下打印二叉树思路:实现一个二叉树的层序遍历,使用队列实现/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { publ

2021-09-21 12:02:40 80

原创 全排列问题-(C语言实现)

#include <stdio.h>#include <stdlib.h>void swap(int array[], int i, int j) { int temp = array[i]; array[i] = array[j]; array[j] = temp;}void print(int array[], int n) { int i; for (i = 0; i < n; i++) { printf

2021-09-20 22:22:44 323

原创 堆排序-(数组实现 C语言版本)

#include <stdio.h>#include <stdlib.h>// 交换函数,交换数组中的两个数void swap(int array[], int i, int j) { int temp = array[i]; array[i] = array[j]; array[j] = temp;}// 维护tree中下标为i的结点,使其满足堆的性质// n: tree中结点的数量// i: 当前要维护的结点的下标void heapif

2021-09-20 21:07:06 142

原创 线段树-(数组实现 C语言版本)

自己在网上重新学习了线段树之后,写了一下线段树的比较标准的写法,包含测试的过程。#include <stdio.h>// 线段树的最大结点数,可根据具体题目进行更改#define MAX_LEN 1000// 递归建立线段树// arr: 存放原始数组的数组// tree: 存放线段树的数组// node: 当前遍历的结点// tree[node]表示的是原始数组中start到end范围内的数字的和(包含start和end所在位置)void build_tree(int a

2021-09-20 09:47:46 137

原创 NC111 最大数 牛客网(详细注释及图解)

牛客网原题地址:NC111 最大数import java.util.*;public class Solution { /** * 最大数 * @param nums int整型一维数组 * @return string字符串 */ public String solve (int[] nums) { // write code here // 求数组中所有数的和,用于判断特殊情况,即数组中全是0的情况

2021-09-18 15:07:01 285

原创 剑指 Offer 35. 复杂链表的复制 LeetCode

LeetCode原题地址:剑指 Offer 35. 复杂链表的复制思路:先复制next,再复制random/*// Definition for a Node.class Node { int val; Node next; Node random; public Node(int val) { this.val = val; this.next = null; this.random = null; }}

2021-09-17 13:22:19 67

原创 1668. 最大重复子字符串 LeetCode-字符串匹配

LeetCode原题:1668. 最大重复子字符串class Solution { public int maxRepeating(String sequence, String word) { // 模式串长度大于原字符串,返回0 if (word.length() > sequence.length()) { return 0; } // 原字符串中一个模式串都没有,返回0 if (sequ

2021-09-17 08:35:57 314

原创 459. 重复的子字符串 LeetCode-字符串匹配

LeetCode题目:459. 重复的子字符串class Solution { public boolean repeatedSubstringPattern(String s) { int length = s.length(); // 至少是由两个相同的子字符串构成,所以子字符串的长度最大为s的一半 for (int i = 1; i <= length / 2; i++) { // 初始字符串长度是子字符串长度的倍数时才

2021-09-16 17:03:48 89

原创 204. 计数质数 LeetCode-枚举

204. 计数质数厄拉多塞筛法求小于n的质数的个数class Solution { public int countPrimes(int n) { // 厄拉多塞筛法 boolean[] isPrime = new boolean[n]; int count = 0; for (int i = 2; i < n; i++) { if (!isPrime[i]) { cou

2021-09-16 15:23:28 68

原创 463. 岛屿的周长 LeetCode-矩阵

矩阵相关题目:463. 岛屿的周长class Solution { // 题目中有说只会出现一个岛屿,所以我们只需要求出这个岛屿的周长即可 public int islandPerimeter(int[][] grid) { int row = grid.length; int col = grid[0].length; int per = 0; for (int i = 0; i < row; i++) {

2021-09-15 21:17:56 60

原创 67. 二进制求和 LeetCode-字符串

LeetCode题目:67. 二进制求和字符串相关题目,使用栈来实现class Solution { public String addBinary(String a, String b) { Stack<Integer> num1 = new Stack<>(); Stack<Integer> num2 = new Stack<>(); Stack<Integer> sum = new

2021-09-15 20:08:28 75

原创 二叉树的先序、中序和后序遍历(Java实现)

通过牛客网上的题目来复习一下二叉树的先序、中序和后序遍历,并用Java实现实现二叉树的先序、中序和后序遍历题目大意:给定一个二叉树的根结点,分别进行先序、中序和后序遍历,将遍历得到的序列分别放在三个一维数组中,然后返回三个一维数组组成的二维数组(可类比C语言的实现来理解):import java.util.*;/** public class TreeNode {* int val = 0;* TreeNode left = null;* TreeNode right = nu

2021-09-13 17:22:22 533

原创 SpringMVC学习

SpringMVC项目配置步骤(1)add Framework support… 选中web项目(2)配置tomcat服务器,添加一个artifact(3)WEB-INF下新建lib目录放入相关jar包(4)加载jar包:Project Structure -> Libraries -> 加一个lib选中项目目录下对应lib位置(记得选中对应项目)(5)在src下粘贴springmvc.xml文件,修改其中需要扫描的包(属性base-package)(6)在web -> WEB

2021-09-02 17:09:31 70

原创 使用ECharts实现简单图表的绘制

在web目录下导入所需js文件写一个类来封装图表中所需的信息这里封装了一个类用于统计每个班级的人数信息public class BanjiCountVO { private String name; private Integer value; public BanjiCountVO() { } public BanjiCountVO(String name, Integer value) { this.name = name;

2021-09-02 16:51:05 512

原创 Java-IO流

IO代表了input output,即输入输出,而输入输出流是以内存为参考的。IO流的分类:1、根据处理的数据类型不同可以分为:字符流(以字符为单位读写)和字节流(以字节为单位读写)。2、根据数据的流向不同可以分为:输入流和输出流。一般情况下,如果要读写的数据是字符数据,我们使用字符流,如:文本文件。如果要读写其他类型的数据,如:图片数据、视频数据,我们使用字节流。字节流可以读取任何类型的文件,即使用字节流也可以读写字符数据,而字符流只能读取文本文件。fileReader.read() 以两种方

2021-08-23 20:31:18 67

原创 JSON数据格式与Ajax技术

JSON数据格式介绍JSON数据格式主要用于:1、使用ajax进行前后台数据交换2、移动端与服务端的数据交换主要有两种结构:1、对象格式:{“key1”:obj1, “key2”:obj2, “key3”:obj3…}2、集合格式: [obj1,obj2,obj3…]注意:JSON的key是字符串,JSON的value是Object。一些注意点:1、并列的数据之间用逗号隔开。2、对象用大括号(“{}”)表示。3、对象的集合用方括号(“[]”)表示,对象与对象之间用逗号隔开。4、元素值

2021-08-20 19:31:09 160

原创 EL表达式与JSTL

EL表达式与JSTL这两种技术的使用,都是为了去掉JSP页面中的Java代码,全部以标签的形式表示,有利于团队的合作EL表达式:主要作用是从域对象中取出数据下图中的例子总结了EL表达式的一些用法,分别以pageContext、request、session、application四个域对象为例<html><head> <title>Title</title></head><body> <%--JSP脚本

2021-08-20 19:04:31 109

原创 JavaWeb-过滤器

为什么要用过滤器在我们项目开发的过程中,经常会遇到需要重复写一些代码的时候,例如:编码的设置、登录权限的判断等等。为了减少一些工作量,同时也为了让代码的结构更好,我们可以用过滤器来实现一些重复的代码。多个Filter的执行顺序按照类名的字典序来执行用过滤器实现统一设置编码和登录权限的判断统一设置编码:// 一定要加注解,urlPatterns = "/*"表示对所有路径的访问都要经过该过滤器@WebFilter(filterName = "encoding", urlPatterns = "/

2021-08-18 08:39:20 82

原创 Cookie与Session

服务器中的内存区域-ServletContext能够被所有用户共享的区域,和request一样也可以通过setAttribute和getAttribute来读写数据。但也因为被所有用户共享,所以放进去的数据区分不开是哪个用户的,也就是说它的范围太大了。数据保存在本地的技术-Cookie数据存储在客户端本地,减少了服务器端存储的压力,但安全性不好,客户端可以清除Cookie。使用Cookie在本地存储数据时,是以键值对的形式来存储的,只能存储字符串类型的数据,不能保存对象,且不能保存中文。一个Cooki

2021-08-16 20:36:32 55

原创 JSP servlet-分页查询

使用的数据库为MySQL数据库,数据库里面没有分页这个概念。而我们要实现分页,实际上是利用了sql语句中的limit [offset],rowsoffset:偏移到哪个位置rows:数多少个备注:offset参数可以不写,不写代表偏移到0,一般写上即可,不需要写的情况比较少。举例:-- 分页的实现-- SELECT * FROM TABLE LIMIT [offset],rows;SELECT * FROM student LIMIT 0,5;SELECT * FROM student LI

2021-08-13 20:29:16 1242 1

原创 简单理解Java中的值传递和引用传递

我们都知道Java中有着值传递和引用传递的说法,其实没有必要把它们分开来理解,都把它们当成一种“值”的传递即可,只不过传递的“值”的类型不同。对于值传递来说,传递的“值”其实就是我们给变量赋的值,也就是我们要用的数据。而对于引用传递我们可以这样理解,它传递的“值”实际上是我们要用的数据(也就是对象)的地址,这个变量指向我们new出来的对象。所有的基本数据类型都是值传递,所有的引用数据类型都是引用传递。具体讲解如下:值传递public class Demo { @Test public

2021-08-11 20:35:31 83

原创 Java查询数据库数据并在网页端显示详细步骤(Idea)

进行WebProject相关配置 (已提前准备好tomcat放于某处)执行完以上步骤会出现:在 WEB-INF 下新建 Directory 命名为 lib 并放入 mysql 驱动的jar包加载外部库在 web目录下新建(需要跳转到的)用于展示数据的 jsp 页面 [jsp 页面其实和 html 页面差不多,但是其中可以写 Java 代码]新建 servlet 并放在 src 目录的对应 package 下(此处建议把类似 entity(实体类)、serv

2021-08-10 20:47:53 14487 3

原创 JavaScript基础知识总结

JS中的简单输出语句使用console.log() 语句可以实现在控制台上的输出,并且也有字符串的拼接这样的操作。<script type="text/javascript"> var num = 3; var str = '10'; console.log(num + str);// 310 // 有一些全局的函数 console.log(num + parseInt(str));// 13 console.log(parseInt(3.99));//

2021-08-10 19:54:19 119

原创 CSS-相对定位、固定定位与绝对定位

通过一些例子来简单了解这三种定位相对定位(position: relative)以自身为参照物,通过对top、bottom、left、right属性的设置来实现元素的偏移。left为正表示从该元素的左边向该元素中心偏移,其余三个可以类比得出。下图中代码实现了鼠标悬停在该元素时,向右上方微微抖动。也常被用作绝对定位元素的目标元素。 .pic-box ul li:hover{ /* 相对定位的目标就是它自己 */ /* 往中心方向偏移是正数,往非中心方向偏移是负数 */

2021-08-09 20:23:00 104

原创 CSS-伪类

同一个标签,根据它状态的不同,展现出不同的效果,就叫做“伪类”可以通过超链接标签a来认识伪类:对于一个超链接,它有着四种状态:用户没有点击过的初始状态、鼠标悬停在超链接上的状态、鼠标点击了超链接,但还没有松手的状态以及访问过的状态,我们可以给这四种状态设置不同的表现效果。<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <s

2021-08-09 20:04:07 63

原创 CSS-浮动定位

首先要知道两个概念:块级元素与行内元素1、常见的块级元素有:div、h、ul、li、p特点:①能够设置宽高(宽度如果不设置,默认为父容器的宽度)②独占(父容器)的一行,不能与其他元素并列2、常见的行内元素有:span、a、input、u、i、img特点:①不能设置宽高,默认宽高就是文字的宽度和高度②与其他行内元素可以并排但是我们在设计一个页面的时候通常想要一个元素既能够设置宽高,又能够与其他元素并排,这就要用到浮动定位了首先有一个小知识要知道,块级元素与行内元素的转换。通过对元素disp

2021-08-09 19:47:11 313

原创 CSS相关知识总结

CSS 全称为 cascading style sheet 层叠样式表选择器介绍语法:选择器 {属性名1:属性值1;属性名2:属性值2;属性名3:属性值3;属性名4:属性值4;}当我们在使用选择器的时候,是通过选择器选择上相应的标签,给它们设置我们定义的样式。选择器的分类:标签选择器: p{}(标签选择器可以给所有选中的标签设置相应的样式) <style type="text/css"> h2{ font-size: 15px; color: gr

2021-08-06 20:15:44 58

原创 初识HTML

对于前端知识的学习大体可以分为三个部分:HTML、CSS 以及 JavaScript的学习HTML:超文本标记语言 定义页面结构CSS:层叠样式表 页面显示的样式JS:JavaScript 页面交互(动态交互)其中JavaScript 是一个独立的语言。在html学习的过程中一定要会的一个操作:审查元素在Chrome浏览器中,点击右键 -> 检查(Ctrl + Shift + I)会弹出一个界面,我们可以查看该浏览器页面上每

2021-08-05 20:00:22 38

原创 JDBC的完整流程简化

之前整理的jdbc流程并不完整,少了最后的关闭连接的操作,以及并没有对其中一些重复的流程进行优化。 int selectId = 3; Connection connection = null; PreparedStatement statement = null; ResultSet resultSet = null; try { Class.forName("com.mysql.jdbc.Driver

2021-08-05 19:21:25 104

原创 JDBC开发步骤

try { // 1、加载驱动Class.forName("");(驱动本身是由数据库厂商实现) Class.forName("com.mysql.jdbc.Driver"); // 2、获得连接对象Connection Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3307/study?useUnicode

2021-08-04 20:49:36 85

原创 Java中的异常

异常简单来说就是程序运行时出现了不正常的情况,有些我们可以处理,有些我们难以处理。当出现Error时,一般是发生了非常严重的错误,由运行环境来处理;而对于Exception,我们可以对它进行处理,并且对于不同的Exception我们可以有不同的处理方式。对于Exception,可以简单分为两类,运行时异常和编译时异常(也叫非运行时异常/检查时异常)运行时异常:意味着程序存在bug,需要我们修改程序来避免这类异常,例如:数组越界、空指针异常等等。编译时异常:当我们在写代码的时候就会提示出的异常,这类异

2021-08-04 20:41:11 74

原创 finally语句中代码的执行情况

一般情况下,不管前面语句有没有捕获到异常,finally语句中的代码都必须执行如果finally语句是在return表达式之后执行的,此时return后的值会被暂存,等待finally代码块执行结束后再把之前暂存的结果返回public static void main(String[] args) { int result = finallyNotWork(); System.out.println(result);// 10001}public static int finallyNotW

2021-08-04 20:12:16 184

原创 数据库学习记录3

分组查询-- 统计男女分别有多少人数-- 性别 人数-- 男 3-- 女 2SELECT gender AS '性别',COUNT(*) AS '人数' FROM student GROUP BY gender;-- 分组之后的筛选-- 人数大于4人的组SELECT gender AS '性别',COUNT(*) AS '人数' FROM student GROUP BY gender HAVING COUNT(*)>4;对分组查询的理解:先根据 gro

2021-08-03 20:31:22 119

原创 数据库学习记录2

简单查询-- 显示所有列(字段)数据SELECT * FROM student; SELECT id,`name`,age,gender FROM student;-- 查询指定的列SELECT id,`name` FROM student;-- 查询的时候可以添加常量列,通过AS可以起别名-- AS 可以给某一列起别名,这个AS可以省略SELECT id,`name`,age,gender,'Java210702' AS '班级' FROM student;-- 查询的时候可以将字段当成

2021-08-03 20:03:22 60

原创 代码管理之Git的使用

Git 的基本使用:注意:我们要管理的是源代码,一些没必要管理的文件我们需要在初始化仓库之前让 Git 忽略它们,需要在我们项目的文件夹下添加一个名为 .gitignore 的文本文件,该文件会告诉 Git 哪些文件不需要管理。该文件中的内容如下:# Maventarget/*.ser*.ec# IntelliJ Idea.idea/out/*.ipr*.iws*.iml# Eclipse*.class/build/其中指明了哪些文件是要忽略的,这里使用了 Ide

2021-08-03 19:46:53 104

原创 数据库学习记录1 [SQL语句]

创建表相关:CREATE TABLE teacher( id INT PRIMARY KEY AUTO_INCREMENT, `name` CHAR(10) NOT NULL, age INT COMMENT '年龄', address CHAR(10) DEFAULT '中国', class_id INT, UNIQUE KEY(`name`), FOREIGN KEY(class_id) REFERENCES class(id));在创建表

2021-08-03 08:51:14 88

原创 编写Java程序时的一些注意事项

在我们编写Java程序的过程中,很多时候我们不会去特别注意编写时的一些细节,因为它们可能不会影响到程序运行的结果,但是它可以让我们的程序更易读、更美观或者更清晰,也算是一种提升吧。下面总结了一些Java程序编写过程中的小注意事项:① 方法前或其他适当位置添加多行注释在适当的位置添加注释可以让我们的程序变得更易读,尤其是在编写一些比较复杂的程序时更重要。当然注释也不要过多,在该加的地方加注释即可(一般是在一些重要变量或是较难理解的方法前添加)。使用多行注释的话还可以在我们调用它的时候给我们一些提示。②

2021-08-02 20:47:19 2144

空空如也

空空如也

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

TA关注的人

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