Hexo更换主题之Butterfly
一.前言前段时间搭建好了 Hexo 框架并用上了 Fluid 主题,后来不知道怎么回事,我的 Fluid 主题出了点问题,正好对我来说 Fluid 主题有点太简约了,索性换了一个 Butterfly 主题。下面说的一些配置的效果可以参考我的博客:cofbro 的博客 - Hello I’m cofbro如果还没有安装 Hexo,可以看看这篇文章——Hello Hexo!一款高效的个人博客框架
二.Butterfly 的下载打开你的 Hexo 根目录,点击鼠标右键,进入 Git Bash Here,输入以下命令:
1npm i hexo-theme-butterfly
随后咱们依次进入 Hexo -> themes -> butterfly 找到 _config.yml 文件,将里面的内容复制到 Hexo 根目录中的 _config.butterfly.yml(如果没有就创建)。
三.关于 Butterfly 配置
注意:本文仅展示部分配置,如需更多请参考Butterfly - A Simple and Card UI Design theme for Hexo
1._ ...
算法练习:只有两个键的键盘(数学法,动态规划)
一.前言又到了记录代码的时候了,这道题来自 LeetCode,只有两个键的键盘:
最初记事本上只有一个字符 ‘A’ 。你每次可以对这个记事本进行两种操作:Copy All(复制全部):复制这个记事本中的所有字符(不允许仅复制部分字符)。Paste(粘贴):粘贴 上一次 复制的字符。给你一个数字 n ,你需要使用最少的操作次数,在记事本上输出 恰好 n 个 ‘A’ 。返回能够打印出 n 个 ‘A’ 的最少操作次数。
下面给出两个例子:示例1:
输入:3输出:3解释:最初, 只有一个字符 ‘A’。第 1 步, 使用 Copy All 操作。第 2 步, 使用 Paste 操作来获得 ‘AA’。第 3 步, 使用 Paste 操作来获得 ‘AAA’。
示例2:
输入:n = 1输出:0
二.题解首先说说笔者写这道题的经历吧,不怕大家笑话,这道题我足足写了 3 小时…最开始看到这道题的时候我想的是我可以将 n 以前的操作 A 的次数以次数为键用 Hashmap 存起来,然后遇到 n 的时候直接去 Hashmap 里面拿,当我去提交的时候,发现有些测试用例是过不了的, ...
算法练习:回文子字符串的个数(多种方法)
一.前言今天介绍一道相对简单的练习题,同样是来自 LeetCode。
回文子字符串的个数,给定一个字符串 s ,请计算这个字符串中有多少个回文子字符串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。
示例1:
输入:s = “abc”输出:3解释:三个回文子串: “a”, “b”, “c”
示例2:
输入:s = “aaa”输出:6解释:6 个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”
题目来源:LeetCode
二.题解其实关于回文的题有很多种,而解法更是多种多样,今天介绍两种方法,递归和中心拓展。
1.递归简单来说递归就是一个函数调用自己本身的行为就叫递归。递归具有代码简洁,易读的特点,但是缺点也不容忽视:
a).运行效率较低。b).可能会导致栈溢出,如果递归次数太多,需要在内存栈中分配空间以保存参数以及临时变量就会过多,当超出栈的容量,就会导致栈溢出。
我们思路是这样的:首先通过遍历找到所有的子串,然后再判断子串是否是回文。那么怎么判断是否是回文呢?比如这样的一个字符串abcba,我们 ...
乘积小于 K 的子数组(滑动窗口)
一.前言今天奉上的题是来自LeetCode中的一道中等难度的题,但是如果了解滑动窗口的思想,其实这道题也是比较简单的,题目如下:
给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于k 的连续子数组的数目。
示例一:
输入:nums = [10,5,2,6], k = 100输出:8解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。
示例二:
输入:nums = [1,2,3], k = 0输出:0
二.思考像这种从一个数组里面找一些子数组或者子字符串的问题大都可往这方面靠,一般来说都是可以解决的。因此我们大致思路是这样的,同样定义两个指针(一个叫 left,一个叫 i),它们都指向数组的第一个元素。我们用 i 指针来遍历数组,每当 i 指向新的元素时我们都计算 i 指针和 left 指针之间(窗口之间)元素的积并判断一下是否小于 k,若成立则当前子数 ...
算法练习:统计好数字的数目(快速幂)
一.前言又是在力扣被题折磨的一次,反反复复地提交,反反复复的不通过,不过还好了解到了快速幂的思想,这种方式能大幅提高程序的运行速度。
题目:我们称一个数字字符串是 好数字 当它满足(下标从 0 开始)偶数 下标处的数字为 偶数 且 奇数 下标处的数字为 质数 (2,3,5 或 7)。
比方说,”2582” 是好数字,因为偶数下标处的数字(2 和 8)是偶数且奇数下标处的数字(5 和 2)为质数。但 “3245” 不是 好数字,因为 3 在偶数下标处但不是偶数。给你一个整数 n ,请你返回长度为 n 且为好数字的数字字符串 总数 。由于答案可能会很大,请你将它对 109 + 7 取余后返回 。
一个 数字字符串 是每一位都由 0 到 9 组成的字符串,且可能包含前导 0.(题目来源:LeetCode)
二.分析这道题乍一看似乎挺简单,由于是让我们返回好数字的个数,对于偶数下标来说符合条件的无非就 0,2,4,6,8 这几个数字,而奇数下标只有 1,3,5,7 这四个数字。我们只需要计算每一位上符合条件的数字的个数之积,顶 ...
Hello Hexo!一款高效的个人博客框架
一.前言什么是 Hexo?
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
现在网上大多数的博客系统其实都是别人的框架,比较流行的框架有 WordPress, halo , hugo 还有我们今天要讲的 Hexo。
二.安装准备
本文部分代码可能失效,具体以官网 | Hexo为准由于 Hexo 是基于 Node.js 的,因此我们需要先下载 Node.js,另外只需要安装 git 工具就 ok 了。
1.安装Node.js傻瓜式安装,一直 next 即可。如有疑惑请自行上网搜索,网上安装教程很全,相信大家不会在这耽搁太多时间。安装完成后我们任意位置单击鼠标右键会有一个 Git Bash Here,点击后就会弹出 git 命令框了。注意:若想要后面下载速度更快,请打开 git 输入以下命令
1npm config set registry "https://registry.npm.taobao.org"
2.安装Git 上同。
三.Hexo 安装完成上述操作后 ...
轻松理解JDBC并使用
一.前言最近学习了 JDBC,觉得非常重要,因此连忙熬夜记录下来。
二.什么是 JDBC?
JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。
具体来说就是 Java 为了能够让用户操作不同的数据库而编写出来的一套标准接口,我们需要调用它从而能够操作不同的数据库。而像 MySQL,SQLite,SQLService 不同的厂商为了能让 Java 操作自己家的数据库也需要实现 Java 提供的接口,这些实现了 JDBC 接口的类打成一个 jar 包,也就是我待会提到的数据库驱动。
三.JDBC 的五个步骤1.注册驱动2.建立 Java 与数据库的联系3.获得可操作的数据库对象4.执行 SQL 语句5.查看结果
四.补充:1.connectiona).解释:Connection 与特定数据库的连接(会话),在连接上下文中执行 sql 语句并返回结果。
b).常用方法:
createStatement():创建向数据库发送 s ...
Android动态广播(android8.0)
Android 广播事件(1).广播注册分类(a).动态注册 在 UI 中注册的广播,例如:1234567IntentFilter intentFilter = new IntentFilter();//实现了Parcelable接口,可用于过滤广播intentFilter.addAction(Constants.ACTION_SEND_MSG);//设置过滤器,规定能接受的广播信号MessageReceiver messageReceiver = new MessageReceiver();this.registerReceiver(messageReceiver,intentFilter);//注册广播
(b).静态注册需要在 manifest 中进行注册(在安卓 8.0 后系统废除了大部分静态广播,最好使用动态注册)。
(2).广播类型分类(a).系统广播系统中已经定义的广播,此类广播只能由系统发出,并且需要在 intent-filter 中加上系统已经写的 action。
(b).自定义广播顾名思义,是用户自己定义的广播。
(3).动态实现广播(a)我们首先需要一个广播接收 ...
算法练习:无重复字符的最长子串(滑动窗口)
一.前言今天遇到了这种找出无重复字符的最长子串的算法题,小编思来想去依旧没有想到有什么好方法,直到看到了大佬的算法,极为震撼,想写篇博客,记录下来。
题目如下:给出一组字符串,如 s = “ adsjkhf ”,返回值为 7,s = “abb”,返回值为 2,s = “aab”,返回值为 2。请判断此字符串中无重复字符的最长子串。
二.补充Java HashMap 中的方法:
get() 方法获取指定 key 对应对 value:map.get(key)
put() 方法将指定的键/值对插入到 HashMap 中:map.put(key,value)
containsKey()方法如果 map 中存在指定的 key 对应的映射关系返回 true,否则返回 false。
三.题解本题主要通过滑动窗口的思想解决。那么什么是滑动窗口呢?其实就是类似于两个前后指针,两个指针不断向后移,我们只关注指针中间的数,最后返回指针中间的元素的个数。
(1) 分析我们先定义一个 map 容器用于存放字符串中的每个字符,然后从字符串的第一个字符 a 开始( i ...
扑克比大小(Java&Kotlin)
一.前言想要具备面向对象的思维,多写代码必不可少,今天记录的是一个能迅速使大家建立起面向对象思维的一个小 Demo:从一副扑克中抽出 2 张牌来进行比较,具体如下:
1.此副牌大小顺序为 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < J < Q < K < A.2.若点数相同则比较花色 ♠ < ♥ < ♣ < ♦ .注意:一副扑克中没有相同的两张牌.
二.思考既然讲到面向对象的思维,那么在敲代码前一定要好好思考下比较两张扑克所包含的动作和事物有哪些?首先可以确定的是需要一副扑克,那么这固然是一类(Poker 类),只有有了扑克我们才能比大小,然而扑克就只是扑克吗,扑克中包含了哪些东西 ?点数和花色?那么这又是两类(PokerNumber 类和 PokerSuit 类),由于扑克牌是由点数和花色组成的,那么也就是说 PokerNumber 类和 PokerSuiit 类与 Poker 类是聚合关系。我们明白了扑克的组成,那么又是怎样将牌发出去从而比较大小的呢?这里就需 ...