HEXO+GitHub搭建博客的小教程
# 如何用 hexo 搭建自己的博客及美化自己的博客
这是我配好环境使用 hexo 写的第一篇博客
这里特别感谢各位大佬们的支持与帮助 ε≡٩(๑>₃<)۶
# 配置相关环境
要想创建自己的 hexo 博客需要配置相关的环境(我前几次就经常把环境搞炸),接下来开始配置创建博客所必须的环境
过程来源: Gaein nidb,Code Sheep.
相关视频链接: https://www.bilibili.com/video/BV1Yb411a7ty?from=search&seid=4666682153927695444
# 安装 Node.js
可以去 https://www.nodejs.org 网址下载
选择左边 LTS (长期支持版) 下载,安装时无脑下一步即可
安装完成之后会有两个组件,如图所示
可以顺带检查一下它们俩的版本,按下键盘的 win + R 键,在弹出面板输入 cmd,打开 dos 命令窗口。
输入 npm -v 和 node -v
我们需要利用 npm 安装镜像包,但是因为国内的下载速度比较慢,所以我们需要下载一个 cnpm 淘宝的源
...
Leetcode-632-最小区间
# Leetcode 632. 最小区间
# 题目描述
你有 k 个 非递减排列 的整数列表。找到一个 最小 区间,使得 k 个列表中的每个列表至少有一个数包含在其中。
我们定义如果 b-a < d-c 或者在 b-a == d-c 时 a < c ,则区间 [a,b] 比 [c,d] 小。
示例 1:
123456输入:nums = [[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]输出:[20,24]解释: 列表 1:[4, 10, 15, 24, 26],24 在区间 [20,24] 中。列表 2:[0, 9, 12, 20],20 在区间 [20,24] 中。列表 3:[5, 18, 22, 30],22 在区间 [20,24] 中。
示例 2:
12输入:nums = [[1,2,3],[1,2,3],[1,2,3]]输出:[1,1]
提示:
nums.length == k
1 <= k <= 3500
1 <= nums[i].length <= 50
-105 < ...
Leetcode-218-天际线问题
321
# Leetcode 218. 天际线问题
# 题目描述
城市的 天际线 是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回 由这些建筑物形成的 天际线 。
每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heighti] 表示:
lefti 是第 i 座建筑物左边缘的 x 坐标。
righti 是第 i 座建筑物右边缘的 x 坐标。
heighti 是第 i 座建筑物的高度。
你可以假设所有的建筑都是完美的长方形,在高度为 0 的绝对平坦的表面上。
天际线 应该表示为由 “关键点” 组成的列表,格式 [[x1,y1],[x2,y2],...] ,并按 x 坐标 进行 排序 。关键点是水平线段的左端点。列表中最后一个点是最右侧建筑物的终点, y 坐标始终为 0 ,仅用于标记天际线的终点。此外,任何两个相邻建筑物之间的地面都应被视为天际线轮廓的一部分。
注意:输出天际线中不得有连续的相同高度的水平线。例如 [.. ...
Leetcode-1226-哲学家进餐
# Leetcode 1226. 哲学家进餐
# 题目描述
5 个沉默寡言的哲学家围坐在圆桌前,每人面前一盘意面。叉子放在哲学家之间的桌面上。(5 个哲学家,5 根叉子)
所有的哲学家都只会在思考和进餐两种行为间交替。哲学家只有同时拿到左边和右边的叉子才能吃到面,而同一根叉子在同一时间只能被一个哲学家使用。每个哲学家吃完面后都需要把叉子放回桌面以供其他哲学家吃面。只要条件允许,哲学家可以拿起左边或者右边的叉子,但在没有同时拿到左右叉子时不能进食。
假设面的数量没有限制,哲学家也能随便吃,不需要考虑吃不吃得下。
设计一个进餐规则(并行算法)使得每个哲学家都不会挨饿;也就是说,在没有人知道别人什么时候想吃东西或思考的情况下,每个哲学家都可以在吃饭和思考之间一直交替下去。
问题描述和图片来自维基百科 https://en.wikipedia.org/wiki/Dining_philosophers_problem
哲学家从 0 到 4 按 顺时针 编号。请实现函数 void wantsToEat(philosopher, pickLeftFork, pickRightFork, eat, ...
Java中Synchronized的用法(简单介绍)
# 简单介绍
# synchronized 是 Java 中的关键字,是一种同步锁。它修饰的对象有以下几种:
1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号 {} 括起来的代码,作用的对象是调用这个代码块的对象;
2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;
3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;
4. 修改一个类,其作用的范围是 synchronized 后面括号括起来的部分,作用主的对象是这个类的所有对象。
# 修饰一个代码块
1、一个线程访问一个对象中的 synchronized(this) 同步代码块时,其他试图访问该对象的线程将被阻塞。
例子:
123456789101112131415161718192021222324252627282930313233343536package com.wbg;import java.util.ArrayList;import java.util.List;pu ...
Leetcode-208-实现Trie(前缀树)
# Leetcode 208. 实现 Trie (前缀树)
# 题目描述
Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。
请你实现 Trie 类:
Trie() 初始化前缀树对象。
void insert(String word) 向前缀树中插入字符串 word 。
boolean search(String word) 如果字符串 word 在前缀树中,返回 true (即,在检索之前已经插入);否则,返回 false 。
boolean startsWith(String prefix) 如果之前已经插入的字符串 word 的前缀之一为 prefix ,返回 true ;否则,返回 false 。
示例:
1234567891011121314输入["Trie", "insert", "search", "search", "star ...
Leetcode-133-克隆图
# Leetcode 133. 克隆图
# 题目描述
给你无向连通图中一个节点的引用,请你返回该图的深拷贝(克隆)。
图中的每个节点都包含它的值 val ( int ) 和其邻居的列表( list[Node] )。
1234class Node { public int val; public List<Node> neighbors;}
测试用例格式:
简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1( val = 1 ),第二个节点值为 2( val = 2 ),以此类推。该图在测试用例中使用邻接列表表示。
邻接列表 是用于表示有限图的无序列表的集合。每个列表都描述了图中节点的邻居集。
给定节点将始终是图中的第一个节点(值为 1)。你必须将 给定节点的拷贝 作为对克隆图的引用返回。
示例 1:
12345678输入:adjList = [[2,4],[1,3],[2,4],[1,3]]输出:[[2,4],[1,3],[2,4],[1,3]]解释:图中有 4 个节点。节点 1 的值是 1,它有两个邻居:节点 2 和 4 ...
基础算法
# AcWing 785. 快速排序
# 题目描述
给定你一个长度为 n 的整数数列。
请你使用快速排序对这个数列按照从小到大进行排序。
并将排好序的数列按顺序输出。
# 输入格式
输入共两行,第一行包含整数 n。
第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整个数列。
# 输出格式
输出共一行,包含 n 个整数,表示排好序的数列。
# 数据范围
1≤n≤100000
# 输入样例:
1253 1 2 4 5
# 输出样例:
11 2 3 4 5
# 解题思路
# 题意理解
这道题目显然是要我们将一个无序数列排序,成为具有升序性质的升序序列.
# 算法处理
一道排序题目,数据范围是关键,我们发现这道题目只能让我们使用 O (nlogn) 的算法,显然我们可以选择快速排序,归并排序等算法,这里我们就使用快速排序.
# 代码实现
# C++
12345678910111213141516171819202122232425262728293031323334353637#include<iostream>using namespace std;const i ...
C语言快速入门
# 序言
C 语言是一种面向过程的计算机编程语言,多用于嵌入式开发(电路硬件编程)与系统底层编写, 比如我们常用的 Linux 系统,Windows 系统就是主要由 C 语言编写的。同时 c 语言也是最早出现的编程语 言之一,最早在 1972 年就已经被使用,并且直到现在它也是使用率最多的编程语言之一。
# 计算机的内存
代码本身存储在计算机的硬盘里,不管计算机开机还是关机,你写的程序的代码都是存在的,但是 一个程序要想运行起来就需要运行在计算机的内存里。
可以将计算机的内存想象成一个大的空间,这个空间中有各种各样的程序在运行着,并且每个程序 都会占用一定的空间,而所占空间的大小由程序本身所有的一些变量,函数等决定。
# 什么是编译器
我们的计算机只能够识别由 0 和 1 的二进制码,因此我们写出来的代码要想运行起来必须经过软件的 编译,将英文的编程语句转换为电脑能够识别的二进制码,不论哪种编程语言,最终都会经过编译转换 为计算机可识别的二进制码。** 将代码转换为二进制机器码的过程就叫做编译,负责进行转换的程序叫做 编译器。** 例如 gcc 编译器 等
# IDE ...
某菜鸡艰难的you-get使用历程
声明:本文主要功能是记录使用 you-get 的感受和经历,也写了一些使用的过程,可以参考,但不是教学式的教程。(需要教程请百度 / 必应一下)
# you-get 初体验
偶尔有看到身边的同学在用 you-get,并推荐给了我们,当时并没有感觉有很棒,但是后来感觉还是很好用的(真香定律。
# you-get 的使用
# 安装
首先我们需要准备 Python 环境,可以去 python 官网下载,大于等于 Python3 即可,我用的是 python3.9.7。
准备好环境之后就可以下载 you-get 了。(cmd 和 git bush 都可以)
1234567pip install you-get# 如果下载的慢,可以使用国内的源站下载#豆瓣pip install -i http://pypi.douban.com/simple/ you-get#清华pip install -i https://pypi.tuna.tsinghua.edu.cn/simple you-get
安装之后输入
...