自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 计划——不做计划

想想之前每次制定计划的时候的状态,充满欣喜,充满期待的写了很多很丰富很充实的计划内容,然后幻想着自己已经完成了这些计划后有多么的棒的状态,结果这些计划大多数坚持不到四五天就夭折了,有的甚至第二天起床后就被我抛之脑后了。有两个点,第一是我是一个对自己有挺多期待的人,所以在制定计划的时候,我往往会把目标定的太高,虽然制定的时候很爽,但是在执行时也会给自己带来更大的压力。我想好这些事情之后,我把这几件事情刻在了我的脑海里和手机桌面,每当我空闲下来的时候,无所事事想打开手机的时候,我都会让自己优先的去做这些事情。

2024-01-15 22:36:29 442

原创 一文学会父子组件通信

声明更细致的校验的好处是,当我们写了一个组件的时候,别人在使用的时候,就知道在进行组件传值的时候,知道应该传什么类型的,同时如果传错了,浏览器也会抛出警告进行提示。通过上篇文章,我们已经了解了组件的概念,同时留下了一个问题,如何实现父子组件的通信呢,这就需要用到我们的 props,当然本文我们还是使用组合式 API 的代码风格来进行讲解。所有的 props 都会遵循单向绑定原则,当父组件为子组件所绑定的属性更新时,会自然地将新的状态向下流往子组件,子组件中的 props 也会更新到最新值。

2024-01-07 00:19:17 1143

原创 五分钟带你了解vue组件

但是由于我们发现了对于使用的每个子组件,虽然他们的结构是一样的,但是渲染出来的数据却是独立的,因此,如何让子组件去渲染父组件想要的数据,甚至父组件会希望子组件能够去渲染他想要结构和样式,这就需要学习我们的父子组件通信和插槽的知识了,我们留到下篇文章再讲。首先,我们可以将一个很复杂的页面拆分成一个一个的组件,比如一个页面可以先简单的拆分成导航栏,菜单栏,核心内容部分,底部栏,我们可以单独的把这些部分拆分成各个组件,开发的时候可以在里面自定义这个模块所需要的内容和逻辑,这也符合模块化的思想。

2024-01-01 15:46:32 448

原创 新手小白:一文带你用vite从零搭建企业级开发环境

在这工作的半年时间里,开始接触了前端开发,技术栈主要用的是 vue2,但是自己利用时间也学习了 vue3,组合式 api 和 vue3 的各种生态比 vue2 好用太多了,特别是状态管理库 pinia 比 vuex 简介很多,构建工具也从 vue-cli 变成了 vite。这篇文章就带大家从零搭建一套企业级的开发环境。

2024-01-01 12:12:25 687

原创 前端项目打包

前端项目打包 npm run build。启动 nginx ,输入服务器地址即可访问。修改 nginx 的配置文件。生成 dist 目录。

2023-03-03 11:01:05 162

原创 Linux 常用基础命令(入门版)

一文带你简单入门了解linux常用命令

2022-06-26 21:30:03 1001

原创 leetcode103 二叉树的锯齿形层次遍历 Java

题目链接class Solution { public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>> ans = new ArrayList<>(); if (root == null) { return ans; } ArrayDeque<Tr

2020-12-22 14:06:49 141

原创 CAA的图 并查集

CAA的图题目要求找到连通路径上最大的L的同时,尽可能找到最小的R。思路:先将所有的边进行排序,按从大到小进行筛选,当两个顶点第一次连通的时候,就找到了边L,此时边L肯定是最大的。再从边L开始,往大的边进行枚举,当两个顶点再次连通的时候,就找到了边R。...

2020-12-21 09:57:36 122

原创 leetcode 62 不同路径 Java

题目链接class Solution { // 先初始化第一行,在初始化第一列 public int uniquePaths(int m, int n) { int[][] dp = new int[n][m]; for (int i = 0; i < n; i++) { dp[i][0] = 1; } for (int i = 0; i < m; i++) { dp[0]

2020-12-09 09:32:16 114

原创 leetcode 98 验证二叉搜索树 Java

题目链接// 二叉搜索树中序遍历的结果会是一个递增的序列,因此只需判断当前结点是否比前一个遍历的结点大。class Solution { boolean flag = true; TreeNode prev = null; public boolean isValidBST(TreeNode root) { if (root == null) { return true; } if (flag) {

2020-12-09 09:14:04 85

原创 leetcode 110 平衡二叉树

题目链接给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。两种方法:class Solution { // 自顶向下,但此方法会产生大量重复计算 // 先判断以当前结点为根结点的子树是不是平衡树,再继续判断左右子树是不是平衡树 public boolean isBalanced(TreeNode root) { if (root == null) {

2020-12-09 09:09:50 81

原创 二叉搜索树的查找 插入 删除 Java

class Solution { public TreeNode searchBST(TreeNode root, int val) { if (root == null) { return null; } if (val < root.val) { return searchBST(root.left, val); } else if (val > root.

2020-12-08 22:48:57 79

原创 洛谷P3373 线段树模板2 Java

题目链接import java.io.*;class Node { int l; // 区间左端点 int r; // 区间右端点 long sum; // 区间和 long add; // 加法标记 long mul; // 乘法标记 public Node(int l, int r, long sum, long add, long mul) { this.l = l; this.r = r; this

2020-12-04 20:20:40 266 2

原创 洛谷P3372 线段树模板1 Java

原题链接import java.io.*;class Node { int l; // 区间左端点 int r; // 区间右端点 long sum; // 区间和 long lazy; // 懒惰标记 public Node(int l, int r, long sum, long lazy) { this.l = l; this.r = r; this.sum = sum; this.lazy

2020-12-04 13:03:26 218

原创 快速排序 Java

快速排序public class Quick { static int[] nums = new int[]{52, 39, 67, 95, 70, 8, 25, 52, 56, 5}; public void sort(int[] nums) { // 这里没有先将数组进行随机打乱 sort(nums, 0, nums.length - 1); } public void sort(int[] nums, int low, int h

2020-11-29 12:07:50 105

原创 堆排序 Java

堆排序,因为构造的是最小堆,所以排序结果是降序排序。public static void sort(Comparable[] nums) { int N = nums.length - 1; // 因为数组位置0是空掉的,所以注意要减1 // 最小堆的构造阶段 for (int i = N / 2; i >= 1; i--) { sink(nums, N, i); } // 下沉排序阶段

2020-11-29 10:04:08 142

原创 几个简单排序 Java

选择排序把数组分为有序和无序的两部分,每次从无序的部分中找到最小的元素与无序部分的第一个元素进行交换,无序部分减1,有序部分加1。运行时间与输入无关,数据移动是最少的。 public void selectSort(int[] nums) { for (int i = 0; i < nums.length; i++) { int min = i; // 最小数的索引 // 从后面找到最小的数 for

2020-11-29 10:01:31 74

原创 堆的实现 Java

当一棵二叉树的每个结点每个结点都大于等于他的两个子结点时,称为堆有序。/** * 最小堆的实现 */public class MinPQ<T extends Comparable<T>>{ private T[] pq; // 位置0是空掉的 private int N = 0; // 堆中元素的个数 // 构造容量为size的堆 public MinPQ(int MAXN) { pq = (T[])new Comp.

2020-11-28 22:03:17 164

原创 二叉树的遍历 Java实现

前序遍历, 中序遍历和后序遍历过程: 遍历过程中经过结点的路线一样, 只是访问各结点时机不同前序遍历class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> ans = new ArrayList<>(); Stack<TreeNode> stack = new Stack<>();

2020-11-20 11:18:33 77

原创 Servlet基础知识

Servlet 接口定义的5个抽象方法void init(ServletConfig config) // 容器创建好对象Servlet对象后就会调用此方法,通过ServletConfig对象传递初始化配置信息ServletConfig getServletConfig() // 返回Servlet的ServletConfig对象String getServletinfo() // 返回关于Servlet的信息,例如,作者,版本和版本等信息void service(ServletRequest r

2020-11-20 09:59:44 334

原创 JDBC的大致使用步骤

JDBC的大致使用步骤导入jar包注册驱动 : 告诉程序该使用哪一个数据库驱动jarClass.forName("com.mysql.jdbc.Driver");获取数据库连接url : jdbc:mysql://ip地址(域名):端口号/数据库名称Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");定义sql语句获取执行sql的对象 (

2020-11-13 12:01:02 155

原创 Junit单元测试学习

Junit 使用:白盒测试定义一个测试类(测试类名:被测试的类名 + Test 包名:cn.test)定义测试方法:可以独立运行(test + 测试的方法名 返回值:void 参数列表:空参)给方法加 @Test导入junit 依赖环境判定结果:红色:失败绿色:成功使用断言操作来处理结果,有多个重载的方法,判断结果是否与预期的一样Assert.assertEquals(long execepted, long actual);// 使用注解修饰方法// 初始化方法,

2020-11-12 12:12:32 111

原创 栈的几道练习题

力扣 P20 有效的括号public class Solution{ public boolean isValid(String s) { // 空字符串可被认为是有效字符串 if (s.length() == 0) { return true; } HashMap<Character, Character> hm = new HashMap<>(); hm.put('(',

2020-10-26 12:19:50 345

原创 PrintWriter 类输出到文件

public static void main(String[] args) throws IOException { String path = "d:\\test.txt"; FileWriter fw = new FileWriter(path, true); // true 表示在文件上续写 PrintWriter pw = new PrintWriter(fw); String str = new String("hello");

2020-10-26 10:10:19 919

原创 蓝桥杯 算法训练 安慰奶牛 最小生成树

蓝桥杯 算法训练 安慰奶牛题目给出的样例输出应该是178,不是176。题目的意思是从某点出发,遍历所有结点,然后回到起点,花费的最短时间是多少。其中时间花费除了在边上,在结点上也需要花费时间。其中每个边用到两次,经过的每个结点的次数是该结点上有几条边就是几次但是因为边的权值不是唯一的参考依据我们可以 将每条边的权重更新为边本身的两倍再加上连接两条边的结点的值。在最后求出最小生成树的边后还要 加上最小的结点的值。import java.io.*;import java.util.ArrayD

2020-10-15 14:14:16 134

原创 洛谷 P1029 最大公约数和最小公倍数问题

洛谷 P1029 最大公约数和最小公倍数问题 import java.io.*;/** * @author wangshaoyu */public class P1029最大公约数和最小公倍数问题 { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StreamTokenizer st = new StreamTokenizer(br); stat

2020-10-15 09:05:21 128

原创 洛谷 P1835 素数密度

洛谷 P1835 素数密度数据范围[L,R] (L ≤ R ≤ 2147483647, R - L ≤ 1000000),直接线性筛肯定爆炸。埃氏筛法:可以用 10 以内的素数筛选出 100 以内的素数,用 100 以内的素数筛选出 10000 以内的素数。因为每一个合数 A 肯定有一个小于 根号 A 的质因子。所以看数据范围先筛出 50000 以内的素数,再根据已经求出的素数来筛出区间内的数。import java.io.*;import java.util.Arrays;/** * @aut

2020-10-14 19:11:49 443

原创 洛谷 P3383 【模板】线性筛素数 欧拉线性筛

洛谷 P3383 【模板】线性筛素数筛素数就是把不是素数的筛掉,剩下的就是素数。本题数据量较大,用埃氏筛法会超时,因为埃氏筛法不是线性的,比如 6 会被 2 筛一次,还会被 3 筛一次,而欧拉线性筛的关键在于:每个合数只被它 最大的非自身的因数 (或者说是它的 最小质因数 ) 筛掉。每一个合数 = 最小质因数 * 最大的非自身的因数。比如 6 只会被 3 (最小质因数 2 )筛掉;12 只会被 6 (最小质因数 2 )筛掉。i的值被筛掉的数24(2 % 2 == 0 brea

2020-10-14 10:29:37 330 2

原创 单源最短路径 Dijkstra 算法 Java

洛谷 P4779 单源最短路径Dijkstra 算法,解决 有向 非负权图 的单源最短路径算法。import java.io.*;import java.util.ArrayList;import java.util.Arrays;import java.util.PriorityQueue;/** * @author wangshaoyu */public class Main { // 快速输入输出 static PrintWriter pw = new PrintW

2020-10-04 16:25:30 291

原创 poj 1724 Roads dfs Java

poj 1724 Roads 这题主要是学习如何剪枝,不只是最优性剪枝(当当前的路径长度大于已经求得的最大路径长度就回到上一步),还学习保留中间计算结果剪枝。minLen [ i ] [ j ] 表示到达城市 i 花费 j 的最小路径长度,并在搜索过程中不断的对该中间结果进行更新。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.St

2020-10-03 16:35:31 302

原创 洛谷 P1991 无线运输网 最小生成树 Java

题意:所有哨所 都要配备无线电收发器,每两个配备了卫星电话的哨所无论距离多远都可以通话。而只通过无线电收发器通话的哨所之间的距离不能超过 D,这是受收发器的功率限制。收发器的功率越高,通话距离 D 会更远,但同时价格也会更贵。收发器需要统一购买和安装,所以全部哨所只能选择安装一种型号的收发器。换句话说,每一对哨所之间的通话距离都是同一个 D。你的任务是 确定收发器必须的最小通话距离 D,使得每一对哨所之间至少有一条通话路径(直接的或者间接的)。用 kruskal 求图的最小生成树,卫星电话的作用就是.

2020-10-03 16:16:24 103

原创 poj 3278 catch that cow dfs Java

poj 3278 catch that cow 自己一开始用的是dfs,但是dfs需要把所有的情况都求出来,才能得到最快的。所以后来改成了bfs,后来突然想到题目要求的是最快的,相当于最短路径了,所以用了 bfs。import java.util.ArrayDeque;import java.util.Scanner;class Step { int x; // 位置 int steps; // 到达位置 x 所需的步数 public Step(int x, int s

2020-10-02 19:39:39 251

原创 洛谷 P1219 八皇后问题 回溯 Java

洛谷 P1219 八皇后问题import java.util.ArrayList;import java.util.Scanner;import java.util.Stack;/** * 八皇后问题 * @author wangshaoyu */public class Main { static int n; static int ans = 0; static ArrayList<ArrayList<Integer>> list = n

2020-10-02 15:44:54 148

原创 poj 1321 棋盘问题 回溯 Java

poj 1321 棋盘问题import java.util.Arrays;import java.util.Scanner;/** * @author wangshaoyu */public class POJ1321棋盘问题 { static int n; static int k; static int ans; static boolean[] rows; // 用于标记这一行是否已经放过棋子了 static boolean[] cols; //

2020-10-02 14:21:45 312

原创 poj 3723 Conscription 最小生成树 Java

poj 3723 Conscription买一个人就可以利用一个关系(一条边),一开始买一个人肯定是要10000的,然后再买一个人就可以根据他之前买的那个人的关系进行减价,相当于一共买n个人的话,是利用到n - 1 条边,所以要构建最大生成树。然后每个人都要基本的10000块,所以答案就是每个人10000 然后减去最大生成树里的所有边的权重。package 图论;import java.io.BufferedReader;import java.io.IOException;import java

2020-10-01 17:50:21 184

原创 两道尺取法及证明

POJ3061 Subsequence内容来源于挑战程序设计竞赛假设从 as开始的总和最初大于target的连续子序列表示为as + as+1 + …… + at-1 > targetas+1 + as+2 + at-2 < as + as+1 + at-2 < target而从 as+1开始的总和最初大于target的连续子序列如果是as+1 + …… + at’-1 > target则必有 t’ >= t尺取法:可以用一对数不断维护数组里面

2020-10-01 16:39:50 140

原创 poj 1182 食物链 并查集 Java

poj 1182 食物链这道题其实还不是太明白import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.StreamTokenizer;class UnionFind { int[] parent; int[] size; int count; public UnionFind(int n) {

2020-10-01 14:39:54 231

原创 洛谷 P2121 拆地毯 最小生成树 Java

洛谷 P2121 拆地毯这道题其实相当于最小生成树的模板题了,想到用最小生成树做是因为题目中描述:保留的地毯构成的图中,任意可互相到达的两点间只能有一种方式互相到达。其实就是不能有环,因为用一条边连接树中任意两个顶点都会构成一个环,因此就想到了生成树,还有就是题目要求美丽度最大,所以其实是最大生成树。import java.util.*;class Edge implements Comparable<Edge>{ int v; int w; int weight

2020-09-30 19:55:45 214

原创 kruskal 算法求最小生成树 Java

洛谷 P3366 【模板】最小生成树import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.StreamTokenizer;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.PriorityQueue;/** * @author wangshao

2020-09-30 11:10:49 193

原创 洛谷 p1111 修复公路 并查集 Java

洛谷 p1111 修复公路并查集 + 贪心从小到大选取花费时间,到最后只剩一个连通分量的时候就任意两个村庄都连通了。还有一种方法是用 kruskal 算法,当最小生成树构建完成后,最小生成树里面最大的边的权重就是答案。import java.util.Arrays;import java.util.Comparator;import java.util.Scanner;class UnionFind { int[] parent; int[] size; // 根结点对应的分量的

2020-09-30 10:37:30 196

空空如也

空空如也

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

TA关注的人

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