<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[coffee_dount的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/coffee_dount</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; coffee_dount]]></copyright><item><title><![CDATA[ArchLinux系统安装]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/120881038</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/120881038</guid><author>coffee_dount</author><pubDate>Thu, 21 Oct 2021 10:23:05 +0800</pubDate><description><![CDATA[这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
欢迎使用Markdown编辑器
你好！ 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar]]></description><category></category></item><item><title><![CDATA[Docker在私有库中拉取镜像时报错：ERROR: The image for the service you‘re trying to recreate has been removed. If y]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/119752750</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/119752750</guid><author>coffee_dount</author><pubDate>Tue, 17 Aug 2021 13:18:02 +0800</pubDate><description><![CDATA[这里写自定义目录标题
在使用docker-compose从私有仓库拉取镜像时报如下的错：
Pulling jetlinks (registry.cn-shenzhen.aliyuncs.com/XXX/XXX)...
ERROR: The image for the service you're trying to recreate has been removed. If you continue, volume data could be lost. Consider backing up your d]]></description><category></category></item><item><title><![CDATA[macOS系统下上传文件出现“upload file exception: [Errno 30] Read-only file system:”错误]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/115619553</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/115619553</guid><author>coffee_dount</author><pubDate>Mon, 12 Apr 2021 14:00:07 +0800</pubDate><description><![CDATA[在实现上传文件功能时出现upload file exception: [Errno 30] Read-only file system:错误。网上一番搜索尝试操作之后找到解决方法。
出现这个错误的原因是macOS big sur中根目录不能读写。这个事情在上一个版本catalina的时候，就出现过一次。然后我一开始找到的很多方法都是针对catalina版本的系统的，在bigsur中并不起作用。最后在https://newsn.net/say/mac-big-sur-root-readonly.html中找到]]></description><category></category></item><item><title><![CDATA[字母大小写转换的方法]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106848906</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106848906</guid><author>coffee_dount</author><pubDate>Fri, 19 Jun 2020 08:40:30 +0800</pubDate><description><![CDATA[字母大小写转换的方法：
统一转成大写：ch &amp; 0b11011111 简写：ch &amp; 0xDF
统一转成小写：ch | 0b00100000 简写：ch | 0x20
比较的时候注意加上小括号哦，因为位运算优先级比较低。

]]></description><category></category></item><item><title><![CDATA[奇奇怪怪的计算（力扣里的加法、快速幂、求1…n的和等）]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106488120</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106488120</guid><author>coffee_dount</author><pubDate>Tue, 02 Jun 2020 09:45:34 +0800</pubDate><description><![CDATA[数值的整数次方
面试题题16.
实现函数double Power(double base, int exponent)，求base的exponent次方。不得使用库函数，同时不需要考虑大数问题。
这题最简单的方法就是for循环，但是超时也是必然的。
public double myPow(double x, int n) {
    double res=1.0;
    for (int i = 0; i &lt; Math.abs(n); i++) {
        res *= x;
    }
 ]]></description><category></category></item><item><title><![CDATA[Manacher算法没有详解，只有实现]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106210055</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106210055</guid><author>coffee_dount</author><pubDate>Tue, 19 May 2020 11:04:48 +0800</pubDate><description><![CDATA[Manacher算法，又叫“马拉车”算法，可以在时间复杂度为O(n)的情况下求解一个字符串的最长回文子串长度的问题。
具体详解网上比较多，写不清楚先不写了。
package Algorithm;

public class Manacher {

    public static char[] manacherString(String str){
        char[] chars=new char[str.length()*2+1];
        char[] s=str.toCharArr]]></description><category></category></item><item><title><![CDATA[KMP算法]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106197439</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106197439</guid><author>coffee_dount</author><pubDate>Mon, 18 May 2020 17:25:03 +0800</pubDate><description><![CDATA[KMP 字符串匹配算法，具体流程讲讲太烦了呀，讲不清楚，不讲了，忘了的话再回去看视频吧。下面只记一下代码。
package Algorithm;

public class KMP  {

    public static int getIndexOf(String s,String m){
        if (s==null || m==null || m.length()&lt;1 || s.length()&lt;m.length()){
            return -1;
     ]]></description><category></category></item><item><title><![CDATA[母牛生牛问题]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106134978</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106134978</guid><author>coffee_dount</author><pubDate>Fri, 15 May 2020 09:40:54 +0800</pubDate><description><![CDATA[题目描述
母牛每年生一只母牛，新出生的母牛成长三年后也能每年生一只母牛，假设不会死。求N年后，母牛的数量。
思路
列出前几年的母牛的数量，可以得到f(n)=f(n-1)+f(n-3)
代码
package Algorithm;

public class Cow {

    public static int cowNumber1(int n){
        if (n&lt;1) return 0;
        if (n==1||n==2||n==3){
            return ]]></description><category></category></item><item><title><![CDATA[项目宣讲]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106133967</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106133967</guid><author>coffee_dount</author><pubDate>Fri, 15 May 2020 08:58:40 +0800</pubDate><description><![CDATA[题目描述
一些项目要占用一个会议室宣讲，会议室不能同时容纳两个项目的宣讲。 给你每一个项目开始的时间和结束的时间(给你一个数组，里面是一个个具体的项目)，你来安排宣讲的日程，要求会议室进行的宣讲的场次最多。返回这个最多的宣讲场次。
思路
选择最先结束的项目，去掉因为做这个项目而不能做的项目，再从剩下的项目中选择最先结束的项目。
代码
package Algorithm;

import java.util.Arrays;
import java.util.Comparator;

public class ]]></description><category></category></item><item><title><![CDATA[求项目的最大收益（贪心）]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106123309</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106123309</guid><author>coffee_dount</author><pubDate>Thu, 14 May 2020 17:01:14 +0800</pubDate><description><![CDATA[题目描述
输入:
参数1:正数数组costs
参数2:正数数组profits
参数3:正数k
参数4:正数m
costs[i]表示i号项目的花费
profits[i]表示i号项目在扣除花费之后还能挣到的钱(利润)
k表示你不能并行、只能串行的最多做k个项目
m表示你初始的资金
说明:你每做完一个项目，马上获得的收益，可以支持你去做下一个项目。
输出: 你最后获得的最大钱数。
思路
维护一个大根堆和一个小根堆，大根堆按项目的收益排序，小根堆按项目的花费排序。

所有项目入小根堆；
从小根堆中弹出所有的当前可以]]></description><category></category></item><item><title><![CDATA[切金条（哈夫曼编码，贪心）]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106121922</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106121922</guid><author>coffee_dount</author><pubDate>Thu, 14 May 2020 16:26:43 +0800</pubDate><description><![CDATA[题目描述
一块金条切成两半，是需要花费和长度数值一样的铜板的。比如长度为20的金条，不管切成长度多大的两半，都要花费20个铜板。一群人想整分整块金条，怎么分最省铜板? 例如,给定数组{10,20,30}，代表一共三个人，整块金条长度为10+20+30=60. 金条要分成10,20,30三个部分。 如果，先把长度60的金条分成10和50，花费60再把长度50的金条分成20和30，花费50 一共花费110铜板。但是如果，先把长度60的金条分成30和30，花费60再把长度30金条分成10和20，花费30一共花费9]]></description><category></category></item><item><title><![CDATA[最低的字典序]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106095722</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106095722</guid><author>coffee_dount</author><pubDate>Wed, 13 May 2020 12:56:47 +0800</pubDate><description><![CDATA[题目描述
给定一个字符串类型的数组strs，找到一种拼接方式，使得把所有字符串拼起来之后形成的字符串具有最低的字典序。
思路
假设有两个字符串a，b，a和b拼接起来的字符串表示为a.b。如果a.b的字典序小于b.a，就把字符串a放在前面，否则把字符串b放在前面。每两个字符串之间都按照这个标准进行比较，以此标准排序后，再依次串起来的大写字符串就是结果。
代码
package Algorithm;

import java.util.Arrays;
import java.util.Comparator;

p]]></description><category></category></item><item><title><![CDATA[前缀树(Trie树)和Java实现]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106095177</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106095177</guid><author>coffee_dount</author><pubDate>Wed, 13 May 2020 12:30:34 +0800</pubDate><description><![CDATA[什么是前缀树
Trie树，即前缀树，又称单词查找树，字典树，是一种树形结构，是一种哈希树的变种。典型应用是用于统计和排序大量的字符串（但不仅限于字符串），所以经常被搜索引擎系统用于文本词频统计。
Trie树的核心思想是空间换时间，利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。 它的优点是：最大限度地减少无谓的字符串比较，查询效率比哈希表高。
它有3个基本性质：

根节点不包含字符，除根节点外每一个节点都只包含一个字符。
从根节点到某一节点，路径上经过的字符连接起来，为该节点对应的字符串。
每]]></description><category></category></item><item><title><![CDATA[岛问题]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106071505</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106071505</guid><author>coffee_dount</author><pubDate>Tue, 12 May 2020 11:15:54 +0800</pubDate><description><![CDATA[问题描述
一个矩阵中只有0和1两种值，每个位置都可以和自己的上、下、左、右 四个位置相连，如果有一片1连在一起，这个部分叫做一个岛，求一个矩阵中有多少个岛?
举例:
001010
111010
100100
000000
这个矩阵中有三个岛。
思路
单cpu处理的比较简单，就是遍历矩阵，遇到1时用一个感染函数把与它相邻的1改为1。当矩阵很大，需要进行拆分的时候，每个小矩阵处理完之后用并查集进行边界的处理。
代码
package Graphe;

public class Islands {

    pub]]></description><category></category></item><item><title><![CDATA[并查集及其java实现]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106070439</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106070439</guid><author>coffee_dount</author><pubDate>Tue, 12 May 2020 10:46:18 +0800</pubDate><description><![CDATA[并查集（Union-find Sets）是一种非常精巧而实用的数据结构，它主要用于处理一些不相交集合的合并问题。一些常见的用途有求连通子图、求最小生成树的 Kruskal 算法和求最近公共祖先（Least Common Ancestors, LCA）等。
使用并查集时，首先会存在一组不相交的动态集合 S={S1,S2,⋯,Sk}S=\lbrace{S_1,S_2,⋯,S_k\rbrace}S={S1​,S2​,⋯,Sk​}，一般都会使用一个整数表示集合中的一个元素。
每个集合可能包含一个或多个元素，并选出集]]></description><category></category></item><item><title><![CDATA[设计RandomPool结构]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106057557</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106057557</guid><author>coffee_dount</author><pubDate>Mon, 11 May 2020 17:30:55 +0800</pubDate><description><![CDATA[题目描述
设计一种结构，在该结构中有如下三个功能:
insert(key):将某个key加入到该结构，做到不重复加入。
delete(key):将原本在结构中的某个key移除。
getRandom(): 等概率随机返回结构中的任何一个key。
要求：Insert、delete和getRandom方法的时间复杂度都是 O(1)。
思路
维护两个hashmap,一个存放&lt;key,Integer&gt;，一个存放 &lt;key,Integer&gt;
size记录当前有多少个key
插入时在两个map中同]]></description><category></category></item><item><title><![CDATA[已知一棵完全二叉树，求其节点的个数]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106054127</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106054127</guid><author>coffee_dount</author><pubDate>Mon, 11 May 2020 15:10:01 +0800</pubDate><description><![CDATA[已知一棵完全二叉树，求其节点的个数
要求:时间复杂度低于O(N)，N为这棵树的节点个数
思路
满二叉树：层数为lll，节点个数为2l−12^l-12l−1个

从根节点出发，一路遍历其左孩子可以得到该二叉树的高度h
从该二叉树的右孩子节点开始遍历其左孩子可以得到该部分二叉树的高度，如果高度等于lll，那么左子树是满二叉树，可以得到节点数，右子树不是满二叉树，对其进行递归；如果右子树的高度是l−1l-1l−1，那么右子树是满二叉树，可以得到节点数，对左子树进行递归。

代码
package BinaryTre]]></description><category></category></item><item><title><![CDATA[判断一棵树是否是完全二叉树]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106053412</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106053412</guid><author>coffee_dount</author><pubDate>Mon, 11 May 2020 14:33:45 +0800</pubDate><description><![CDATA[思路
二叉树按层遍历：

若有任何一个节点有右孩子没有左孩子，肯定不是完成二叉树，直接返回false；
若一个节点不是两个孩子都全，也不是只有右孩子没有左孩子，那它后面遍历的节点都必需是叶子节点。

代码
public static class Node {
    public int value;
    public Node left;
    public Node right;

    public Node(int data) {
        this.value = data;
   ]]></description><category></category></item><item><title><![CDATA[判断一棵树是否是搜索二叉树]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106053171</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106053171</guid><author>coffee_dount</author><pubDate>Mon, 11 May 2020 14:11:35 +0800</pubDate><description><![CDATA[思路
二叉树中序遍历的结果是依次升序的，则该二叉树是搜索二叉树，否则不是。可在非递归的二叉树中序遍历中稍加修改。
代码
public static class Node {
    public int value;
    public Node left;
    public Node right;

    public Node(int data) {
        this.value = data;
    }
}

public static boolean isBST(Node head]]></description><category></category></item><item><title><![CDATA[判断一棵二叉树是否是平衡二叉树]]></title><link>https://blog.youkuaiyun.com/coffee_dount/article/details/106052728</link><guid>https://blog.youkuaiyun.com/coffee_dount/article/details/106052728</guid><author>coffee_dount</author><pubDate>Mon, 11 May 2020 13:51:21 +0800</pubDate><description><![CDATA[思路
递归判断每个节点及其子节点组成的树是否是平衡树
代码
package BinaryTree;

public class IsBalancedTree {
    public static class Node {
        public int value;
        public Node left;
        public Node right;

        public Node(int data) {
            this.value = data;
 ]]></description><category></category></item></channel></rss>