<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SL_World的博客]]></title><description><![CDATA[磕盐就像爬山一样，山顶只有一个，而到达山顶的路却有很多，找到其中最优美的一条是大家共同的心愿]]></description><link>https://blog.youkuaiyun.com/SL_World</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SL_World]]></copyright><item><title><![CDATA[【操作系统真象还原】Mac安装配置bochs]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/124483823</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/124483823</guid><author>SL_World</author><pubDate>Sat, 30 Apr 2022 17:42:42 +0800</pubDate><description><![CDATA[0 本机环境

macOS Big Sur 11.1
Bochs 2.6.2

1 Bochs下载解压


去「Bochs官网下载地址」下载bochs-2.6.2.tar.gz
手动解压bochs-2.6.2.tar.gz压缩包 或 终端解压tar zxvf bochs-2.6.2.tar.gz

下面进入到Bochs的安装目录：
$ cd bochs-2.6.2

即将进行

configure（配置 &amp;&amp; 检测当前平台是否拥有所需依赖软件包，完成后生成Makefile）
make（由Ma]]></description><category></category></item><item><title><![CDATA[Mac终端主题文字修改]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/124496020</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/124496020</guid><author>SL_World</author><pubDate>Fri, 29 Apr 2022 15:15:47 +0800</pubDate><description><![CDATA[1 主题下载
在github上下载Solarized主题源码
链接：https://github.com/altercation/solarized
然后进入该主题下的solarized-master/osx-terminal.app-colors-solarized目录中
分别双击以下两个文件
Solarized Light ansi.terminal
Solarized Dark ansi.terminal


2 终端偏好设置
在偏好设置中设置solarized主题为默认，同时可进行字体大小等修改

]]></description><category></category></item><item><title><![CDATA[Mac重装Homebrew]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/124494182</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/124494182</guid><author>SL_World</author><pubDate>Fri, 29 Apr 2022 13:53:35 +0800</pubDate><description><![CDATA[由于在更新brew时遇到问题，因此决定重装brew
1. 卸载原有brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

中间可能需要输入密码，忽略可能出现的warning，直到最后卸载成功

2. 安装新的brew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/ma]]></description><category></category></item><item><title><![CDATA[Matplotlib 绘制平滑曲线]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/120789907</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/120789907</guid><author>SL_World</author><pubDate>Fri, 15 Oct 2021 20:13:12 +0800</pubDate><description><![CDATA[文章出处：https://www.delftstack.com/zh/howto/matplotlib/matplotlib-plot-smooth-curve/
文章目录引言一、使用 `scipy.ndimage.gaussian_filter1d()` 高斯核类绘制平滑曲线二、使用 `scipy.interpolate.make_interp_spline()` 样条插值类绘制平滑曲线三、使用 `scipy.interpolate.interp1d` 插值类绘制平滑曲线
引言

使用 scipy.ndi]]></description><category></category></item><item><title><![CDATA[SCI论文配色-matplotlib分类柱状图绘制]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/120752214</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/120752214</guid><author>SL_World</author><pubDate>Wed, 13 Oct 2021 20:55:12 +0800</pubDate><description><![CDATA[原文出处：https://cloud.tencent.com/developer/article/1790533
1 引言
今天在查看资料时，看见一篇SCI论文的配图十分抢眼，图表的整体绘制不是很难，但整个配色还是瞬间让图表“高大上”起来，如下：

2 SCI配色设计
我们使用 FastStone Capture 软件对所需颜色进行吸取，然后对刻度、轴脊梁、字体等进行设计，具体代码如下：
#构造数据
labels = ['L1', 'L2', 'L3', 'L4', 'L5']
data_a = [20, ]]></description><category></category></item><item><title><![CDATA[Matplotlib在学术论文中的柱状图绘制]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/120752087</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/120752087</guid><author>SL_World</author><pubDate>Wed, 13 Oct 2021 20:51:42 +0800</pubDate><description><![CDATA[原文出处：https://cloud.tencent.com/developer/article/1664088
1 引言
柱状图或条形图在学术论文中使用的频率还是很大的，图中需要以不同颜色对不同数据进行区分，但当涉及黑白打印时，色彩颜色的区别度较小，导致难以理解，因此需要绘制黑灰颜色或者黑白阴影的柱状图或者条形图，下面就具体介绍使用Python-matplotlib 的实现过程。
2 可视化绘制
matplotlib绘制这种柱状图或者条形图还是比较简单的，主要涉及的知识点就是ax.bar()方法的应用，首]]></description><category></category></item><item><title><![CDATA[Leetcode|递归分治法|面试题 08.06. 汉诺塔问题]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/120318396</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/120318396</guid><author>SL_World</author><pubDate>Wed, 15 Sep 2021 22:17:58 +0800</pubDate><description><![CDATA[1 递归分支法
用数学归纳法解决

n = 1，盘子从A直接移动到C
n = 2
n = k，将A上n-1个盘子移动到B，然后将最底下的盘子移动到C，最后将B中的盘子移动到C


class Solution {
public:
    void hanota(vector&lt;int&gt;&amp; A, vector&lt;int&gt;&amp; B, vector&lt;int&gt;&amp; C) {
        int n = A.size();
        move(n, A,.]]></description><category></category></item><item><title><![CDATA[Leetcode|二分+缩小右区间去重|154. 寻找旋转排序数组中的最小值 II]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/120252114</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/120252114</guid><author>SL_World</author><pubDate>Sun, 12 Sep 2021 16:27:09 +0800</pubDate><description><![CDATA[1 二分+缩小右区间去重

情况1——nums[mid]在最小值右边或就是最小值



情况2——nums[mid]在最小值左边


对于重复数组，又多了情况三

情况3——nums[mid]和nums[right]相等重复


class Solution {
public:
    int findMin(vector&lt;int&gt;&amp; nums) {
        int size = nums.size();
        int left = 0, right = size -.]]></description><category></category></item><item><title><![CDATA[Leetcode|二分查找|153. 寻找旋转排序数组中的最小值]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/120251635</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/120251635</guid><author>SL_World</author><pubDate>Sun, 12 Sep 2021 15:59:40 +0800</pubDate><description><![CDATA[1 二分查找（注意右边界控制）

情况1——nums[mid]在最小值右边或就是最小值



情况2——nums[mid]在最小值左边


class Solution {
public:
    int findMin(vector&lt;int&gt;&amp; nums) {
        int size = nums.size();
        int left = 0, right = size - 1;
        // 不能是left &lt;= right, 当nums={2,.]]></description><category></category></item><item><title><![CDATA[Leetcode|快慢指针|61. 旋转链表]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/120205075</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/120205075</guid><author>SL_World</author><pubDate>Thu, 09 Sep 2021 17:02:15 +0800</pubDate><description><![CDATA[1 快慢指针
class Solution {
public:
    ListNode* rotateRight(ListNode* head, int k) {
        if (!head || k == 0) return head;
        int size = 0;     
        auto node = head;
        // 记录链表长度为size
        while (node) {
            size++;
          ..]]></description><category></category></item><item><title><![CDATA[Leetcode|快排|912. 排序数组]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/120182903</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/120182903</guid><author>SL_World</author><pubDate>Wed, 08 Sep 2021 16:25:13 +0800</pubDate><description><![CDATA[1 快速排序（随机pivot）
为什么随机取pivot能避免最坏的情况呢？
假设数据是完全随机的话，固定取最后一个数作为pivot，和随机取pivot，达成pivot本身有序的概率是相等的。但实际情况并非如此，实际的数据里有序的情况是多于完全无序的情况的，所以随机取pivot能减少最坏情况出现的概率
class Solution {
public:
    void quickSort(vector&lt;int&gt;&amp; nums, int left, int right) {
        .]]></description><category></category></item><item><title><![CDATA[Leetcode|指针分别遍历双链表|剑指 Offer 52. 两个链表的第一个公共节点]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/120180809</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/120180809</guid><author>SL_World</author><pubDate>Wed, 08 Sep 2021 15:22:56 +0800</pubDate><description><![CDATA[1 拼接两个链表再乘2，使得加长两两链表路径长相同—空间复杂度O(1)O(1)O(1)
class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        if (!headA || !headB) return nullptr;
        auto nodea = headA;
        auto nodeb = headB;
        // 当两..]]></description><category></category></item><item><title><![CDATA[Leetcode|二叉树的属性DFS回溯|113. 路径总和 II]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/119997309</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/119997309</guid><author>SL_World</author><pubDate>Mon, 30 Aug 2021 15:03:31 +0800</pubDate><description><![CDATA[1 DFS回溯
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullp..]]></description><category></category></item><item><title><![CDATA[Leetcode|队1出栈+队2中转|225. 用两个队列实现栈]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/119993836</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/119993836</guid><author>SL_World</author><pubDate>Mon, 30 Aug 2021 11:39:02 +0800</pubDate><description><![CDATA[《225. 用两个队列实现栈》

1 队1出栈+队2中转

两个队列q1和q2，新入栈的元素先放入q2，然后将q1中元素逐个入队q2，再交换2队列即可


class MyStack {
public:
    queue&lt;int&gt; q1, q2;
    /** Initialize your data structure here. */
    MyStack() {

    }
    
    /** Push element x onto stack. */
    void pu]]></description><category></category></item><item><title><![CDATA[Leetcode|入栈+出栈实现队列|剑指 Offer 09. 用两个栈实现队列]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/119991718</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/119991718</guid><author>SL_World</author><pubDate>Mon, 30 Aug 2021 10:28:57 +0800</pubDate><description><![CDATA[1 入栈+出栈实现队列


一个栈用于入队，一个栈用于出队操作

class CQueue {
public:
    stack&lt;int&gt; stk1, stk2;   // stk1用于入队，stk2用于出队
    CQueue() {
        while (!stk1.empty()) stk1.pop();
        while (!stk2.empty()) stk2.pop();
    }
    
    void appendTail(int value) {
.]]></description><category></category></item><item><title><![CDATA[Leetcode|二分+缩小左右区间去重|81. 搜索旋转排序数组 II]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/119642266</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/119642266</guid><author>SL_World</author><pubDate>Thu, 12 Aug 2021 13:36:17 +0800</pubDate><description><![CDATA[1 二分+缩小左右区间去重
对于nums[left] == nums[mid] == nums[right]情况，如nums=[3,1,2,3,3,3,3]， target=2
nums[0] == nums[3]  == nums[6] == 3，无法判断该搜索左侧区域还是右侧区域，一个简单的想法是同时缩小左右侧区域

[left, right] =&gt; [left + 1, right - 1]
nums=[3,1,2,3,3,3,3] =&gt; nums=[1,2,3,3,3]

class .]]></description><category></category></item><item><title><![CDATA[Leetcode|数组上下翻转+主对角线翻转|48. 旋转图像]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/119639230</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/119639230</guid><author>SL_World</author><pubDate>Thu, 12 Aug 2021 11:17:36 +0800</pubDate><description><![CDATA[1 数组上下翻转+主对角线翻转

class Solution {
public:
    void rotate(vector&lt;vector&lt;int&gt;&gt;&amp; matrix) {
        int size = matrix.size();
        // 1.上下翻转
        for (int j = 0; j &lt; size; j++)
            for (int i = 0; i &lt; size / 2; i++) 
    ..]]></description><category></category></item><item><title><![CDATA[Leetcode|取余+数组翻转|189. 旋转数组]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/119637758</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/119637758</guid><author>SL_World</author><pubDate>Thu, 12 Aug 2021 10:53:03 +0800</pubDate><description><![CDATA[1 数组翻转—O(1)O(1)O(1)空间复杂度，O(n)O(n)O(n)时间复杂度

class Solution {
public:
    void reverse(vector&lt;int&gt;&amp; nums, int left, int right) {
        while (left &lt; right) {
            swap(nums[left], nums[right]);
            left++; right--;
        }
 .]]></description><category></category></item><item><title><![CDATA[Leetcode|区间首尾元素大小判断成序+二分查找|33. 搜索旋转排序数组]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/119582239</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/119582239</guid><author>SL_World</author><pubDate>Wed, 11 Aug 2021 00:03:57 +0800</pubDate><description><![CDATA[1 旋转数组的二分查找


在二分搜索基础上，判断左右区间中的收尾元素大小，来判断是否成序，不成序或target在这个区间则搜索，否则搜索另外一个区间

class Solution {
public:
    int search(vector&lt;int&gt;&amp; nums, int target) {
        int size = nums.size();
        int left = 0, right = size - 1;
        while (left &lt.]]></description><category></category></item><item><title><![CDATA[Leetcode|从后向前找首对升序对再交换右侧数并升序|31. 下一个排列]]></title><link>https://blog.youkuaiyun.com/SL_World/article/details/119330507</link><guid>https://blog.youkuaiyun.com/SL_World/article/details/119330507</guid><author>SL_World</author><pubDate>Mon, 02 Aug 2021 17:51:48 +0800</pubDate><description><![CDATA[两遍扫描
以求 12385764 的下一个排列为例：






class Solution {
public:
    void nextPermutation(vector&lt;int&gt;&amp; nums) {
        int left = 0, right = 0, next = INT_MAX;
        int size = nums.size();
        // 1.找到连续升序的左索引left
        for (int i = size - 1; ..]]></description><category></category></item></channel></rss>