<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>笔记 </title>
        <link>https://blog.barnman.cc/</link>
        <description>  </description>
        <lastBuildDate>Mon, 30 Dec 2024 18:24:20 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>zh-CN</language>
        <copyright>All rights reserved 2024, liuzilong</copyright>
        <item>
            <title><![CDATA[Git rebase 使用方法]]></title>
            <link>https://blog.barnman.cc/linux/git-rebase-usage</link>
            <guid>https://blog.barnman.cc/linux/git-rebase-usage</guid>
            <pubDate>Tue, 31 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[用git rebase合并提交（或者修改提交信息）]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-16c5d52ed56e806b8d5ed11750e7c64e"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h4 class="notion-h notion-h3 notion-h-indent-0 notion-block-dd6997e2a1f34e63bf9bc2993ed046d1" data-id="dd6997e2a1f34e63bf9bc2993ed046d1"><span><div id="dd6997e2a1f34e63bf9bc2993ed046d1" class="notion-header-anchor"></div><a class="notion-hash-link" href="#dd6997e2a1f34e63bf9bc2993ed046d1" title="背景说明:"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>背景说明</b>:</span></span></h4><div class="notion-text notion-block-28677265abbd449885456b6f572649f8">在使用 Aider 和 DeepSeek 的开发过程中，每一次修改都会生成一次新的提交。因此，随着项目的迭代，提交历史可能变得较为零散，包含很多类似的修复和功能改动。为了简化提交历史并确保提交信息的清晰性，通常需要使用 <code class="notion-inline-code">git rebase -i</code> 进行提交合并（<code class="notion-inline-code">squash</code>）操作。</div><div class="notion-text notion-block-1836919d0b624b94941fd7a34e4f9a71">假设你有如下的提交历史：</div><h4 class="notion-h notion-h3 notion-h-indent-0 notion-block-56d3af716ec64f5a83f4ec03bd3a79b9" data-id="56d3af716ec64f5a83f4ec03bd3a79b9"><span><div id="56d3af716ec64f5a83f4ec03bd3a79b9" class="notion-header-anchor"></div><a class="notion-hash-link" href="#56d3af716ec64f5a83f4ec03bd3a79b9" title="目标:"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>目标</b>:</span></span></h4><div class="notion-text notion-block-97d37ab35b9e4cb7adf63cd7d346cd6d">我们希望将前面几条提交（<code class="notion-inline-code">style</code> 类的提交）合并为一个更简洁的提交，并且在合并后的提交中明确说明它们涉及到UI改进的内容。具体操作如下：</div><h4 class="notion-h notion-h3 notion-h-indent-0 notion-block-58d374819e9d4a24a77d4adf3228745c" data-id="58d374819e9d4a24a77d4adf3228745c"><span><div id="58d374819e9d4a24a77d4adf3228745c" class="notion-header-anchor"></div><a class="notion-hash-link" href="#58d374819e9d4a24a77d4adf3228745c" title="步骤："><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>步骤</b>：</span></span></h4><ol start="1" class="notion-list notion-list-numbered notion-block-c3aee067485e42c89a067a9673ef91ef"><li><b>启动交互式 </b><code class="notion-inline-code"><b>rebase</b></code>：
首先，执行以下命令启动交互式 <code class="notion-inline-code">rebase</code>：</li><ol class="notion-list notion-list-numbered notion-block-c3aee067485e42c89a067a9673ef91ef"><div class="notion-text notion-block-b00711986fd14afdb6bd4b1bc687ce0d">这将打开编辑器，显示最近的提交。你会看到类似下面的内容：</div></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-e2aa98f8dc2c46f9bff9d46c50192d7e"><li><b>修改提交操作</b>：
将希望合并的提交标记为 <code class="notion-inline-code">squash</code>，即将它们压缩成一个提交。你希望合并的是前三个提交（关于样式和设置的改动），所以修改文件如下：</li><ol class="notion-list notion-list-numbered notion-block-e2aa98f8dc2c46f9bff9d46c50192d7e"><div class="notion-text notion-block-4633130057174e058ad56eed8d0981b5">这表示将 <code class="notion-inline-code">0a789ad</code>, <code class="notion-inline-code">76506ee</code>, 和 <code class="notion-inline-code">c4c0e98</code> 这三次提交合并成一个提交。</div></ol></ol><ol start="3" class="notion-list notion-list-numbered notion-block-a4456b518ea848b2adf6ecdcdd94b584"><li><b>保存并退出编辑器</b>：
保存更改并退出编辑器。Git 会开始执行 <code class="notion-inline-code">rebase</code> 操作，并自动合并前三个提交。</li></ol><ol start="4" class="notion-list notion-list-numbered notion-block-2b27cfb7a9704e67a5a74450bceb568c"><li><b>编辑合并提交消息</b>：
接下来，Git 会让你编辑合并后的提交消息。你可以将这些提交合并成一个简洁的提交消息：</li><ol class="notion-list notion-list-numbered notion-block-2b27cfb7a9704e67a5a74450bceb568c"><div class="notion-text notion-block-de174c6ceb1847129765f05e58f4d816">修改后的消息可以如下：</div><div class="notion-text notion-block-166632458256488dab84835db8aa8df4">这将合并三次关于 UI 改进和设置调整的提交，并且简化为一个清晰的提交消息。</div></ol></ol><ol start="5" class="notion-list notion-list-numbered notion-block-e5a38e2affe746feb5d3d6dee9e521ed"><li><b>完成 </b><code class="notion-inline-code"><b>rebase</b></code>：
保存并退出后，Git 会继续执行 <code class="notion-inline-code">rebase</code>，并将三个提交合并为一个新的提交。完成后，你可以使用 <code class="notion-inline-code">git log</code> 查看新的提交历史。</li></ol><h4 class="notion-h notion-h3 notion-h-indent-0 notion-block-69ea5312fb0f46449acc36beb90427c8" data-id="69ea5312fb0f46449acc36beb90427c8"><span><div id="69ea5312fb0f46449acc36beb90427c8" class="notion-header-anchor"></div><a class="notion-hash-link" href="#69ea5312fb0f46449acc36beb90427c8" title="合并后的结果："><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>合并后的结果</b>：</span></span></h4><div class="notion-text notion-block-90857e56d2b74eca90c82b4a3ad5afa9">合并后的提交会看起来像这样：</div><div class="notion-text notion-block-5781bf4b663b4bec98cf5f06ce580aef">在新的提交历史中，前三个提交已被合并成一个 <code class="notion-inline-code">improve UI of DegreeTrainer settings</code> 的提交，并且其他提交保持不变。</div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[DegreeTrainer介绍]]></title>
            <link>https://blog.barnman.cc/music/degree-trainer-help</link>
            <guid>https://blog.barnman.cc/music/degree-trainer-help</guid>
            <pubDate>Sat, 21 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[有朋友觉得不会用，这是一篇用来介绍的博客]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-1635d52ed56e80a0a158c30a39932adc"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-1635d52ed56e8093b312cb82859d6ed7" data-id="1635d52ed56e8093b312cb82859d6ed7"><span><div id="1635d52ed56e8093b312cb82859d6ed7" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1635d52ed56e8093b312cb82859d6ed7" title="强烈建议观看这个主播的视频"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">强烈建议观看这个主播的视频</span></span></h3><div class="notion-text notion-block-1635d52ed56e80008ca7e9fc4397e407"><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://www.youtube.com/watch?v=Y6BPB3Cso00">https://www.youtube.com/watch?v=Y6BPB3Cso00</a></div><div class="notion-text notion-block-1635d52ed56e80bc8b03d0545f4886da">油管搜索max konyi，我是根据他的理念做的练习网页，他的视频详细介绍了首调的概念，并且有比较多的带练视频。</div><div class="notion-text notion-block-1635d52ed56e80eaa3f6e640430499b7">他自己也有开发一款练耳app但是还没上市，叫做Sonofield Ear trainer，可以关注并支持他一下！</div><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-10e48ee351064fb48bc610a7b93997ea" data-id="10e48ee351064fb48bc610a7b93997ea"><span><div id="10e48ee351064fb48bc610a7b93997ea" class="notion-header-anchor"></div><a class="notion-hash-link" href="#10e48ee351064fb48bc610a7b93997ea" title="1. 调和音级"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">1. 调和音级</span></span></h3><h4 class="notion-h notion-h3 notion-h-indent-1 notion-block-d20f5547e89e4044bc2e90d7d9f1ed35" data-id="d20f5547e89e4044bc2e90d7d9f1ed35"><span><div id="d20f5547e89e4044bc2e90d7d9f1ed35" class="notion-header-anchor"></div><a class="notion-hash-link" href="#d20f5547e89e4044bc2e90d7d9f1ed35" title="什么是调"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>什么是调</b></span></span></h4><div class="notion-text notion-block-e200b499a4164fd886d0d46ef991503e">在音乐中，<b>调</b>（Key）指的是一组音符的集合，通常围绕一个特定的音作为<b>主音</b>（Tonic）。两只老虎》这首歌，在不同的调中会有不同的音符，但旋律的关系是一样的。你不需要关心具体的音名，，我们只需要关注音高之间的关系，具体音符会根据选择的调而变化。</div><h4 class="notion-h notion-h3 notion-h-indent-1 notion-block-8fa7c4a4a3f34200b5bd35f8c36e0895" data-id="8fa7c4a4a3f34200b5bd35f8c36e0895"><span><div id="8fa7c4a4a3f34200b5bd35f8c36e0895" class="notion-header-anchor"></div><a class="notion-hash-link" href="#8fa7c4a4a3f34200b5bd35f8c36e0895" title="什么是音级"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>什么是音级</b></span></span></h4><div class="notion-text notion-block-7eb94aa738684dcebd1479f177d3bb30">音级是每个音符在调中的位置（或者级数）。以常用的七声音阶为例：</div><ul class="notion-list notion-list-disc notion-block-67b60bb2230943feb3254fa14296f214"><li><b>第1级</b>（Tonic，主音）：这是调的核心音，给人“家”的感觉，非常稳定。</li></ul><ul class="notion-list notion-list-disc notion-block-10ca6f5aadff4033bbce9383a853c2ee"><li><b>第7级</b>（Leading Tone，导音）：7音通常有一种“未完成”的感觉，会强烈地指向1。比如，唱“1234567”，停在7的时候会让人觉得不满足，仿佛需要回到1来结束。</li></ul><div class="notion-text notion-block-dae4c1ceefc8485fb88259554aeb4d91">通过训练这些音级，你可以更好地感受它们之间的区别，理解每个音符在调中的功能。</div><div class="notion-text notion-block-7dc2a777b59149b59da0e7db6470f288">这是两只老虎的音频，三段分别在C、G、A调，但是听完会觉得他们两只老虎。这是因为在不同的调里面，都是按照do re mi do, do re mi do, mi fa so mi fa so这样的音级去弹奏的。</div><div class="notion-audio notion-block-1635d52ed56e80c29898e53a75801e67"><audio controls="" preload="none" src="https://notion.so/signed/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fd16a9ae8-47ad-4d5b-aac7-ac0db7f50be7%2Fbfaca2ff-86ed-44d2-b1e4-2c086bd787d5%2F%25E4%25B8%25A4%25E5%258F%25AA%25E8%2580%2581%25E8%2599%258E.m4a?table=block&amp;id=1635d52e-d56e-80c2-9898-e53a75801e67"></audio></div><hr class="notion-hr notion-block-16ed393113464b47b72820e35404e744"/><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-274a4985b16b4407a55948fccb026e20" data-id="274a4985b16b4407a55948fccb026e20"><span><div id="274a4985b16b4407a55948fccb026e20" class="notion-header-anchor"></div><a class="notion-hash-link" href="#274a4985b16b4407a55948fccb026e20" title="2. 调、音级和主音的关系"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">2. <b>调、音级和主音的关系</b></span></span></h3><div class="notion-text notion-block-9d2699ac56a04dc9a3e45c274635391d">在音级训练中，每次练习会有一个<b>持续的音</b>，这个音就是我们的“调音”或者“主音”（Tonic）。它是所有其他音符的基准：</div><ul class="notion-list notion-list-disc notion-block-3f9f4e50c1234ecda6c1b97d0e03679e"><li>默认调是<b>C调</b>，其音符依次为：C D E F G A B，对应的音级是：1 2 3 4 5 6 7。</li></ul><ul class="notion-list notion-list-disc notion-block-6125707f85b9496bb26d79fd1e159d81"><li>如果你选择了其他调，比如G调，音符会变成：G A B C D E F#，音级仍是： 1 2 3 4 5 6 7。</li></ul><div class="notion-text notion-block-2b1a048c3a3548f8a15622a0eacecdc4">每个音级在调中有不同的听感和功能，比如1是稳定的主音，5是属音（具有引导感），而7则是导音（不稳定，倾向于回到1）。</div><hr class="notion-hr notion-block-3e2ace65b99449c4b24ce0bfc84d2b97"/><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-2c5faf02d06b4516a8644db29c79df63" data-id="2c5faf02d06b4516a8644db29c79df63"><span><div id="2c5faf02d06b4516a8644db29c79df63" class="notion-header-anchor"></div><a class="notion-hash-link" href="#2c5faf02d06b4516a8644db29c79df63" title="3. 怎么练习？"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">3. <b>怎么练习？</b></span></span></h3><div class="notion-text notion-block-2e1dcb5d4a4f4d10bf2d3b73fb828674">在练习中，你会听到以下两个声音：</div><ol start="1" class="notion-list notion-list-numbered notion-block-0a8f6ce09d10411abe45c54b2b93281a"><li><b>持续的主音</b>（调音）：这是你练习的基准音，它是调的核心音。</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-4e2410069f294fb28b4326f96ae38354"><li><b>测试音</b>：这是你需要辨别和唱出的音符，你需要感受它和主音之间的音程关系。</li></ol><div class="notion-text notion-block-647b92fbffc6476db4962cee3715f348"><b>练习步骤：</b></div><ul class="notion-list notion-list-disc notion-block-c1465de7b35a4bbba8ca238ead310001"><li>首先，听清楚持续的主音，感受它的稳定性。</li></ul><ul class="notion-list notion-list-disc notion-block-0d5861ed0fad4a779c0be4e96ad7d8f0"><li>然后，听测试音，感受它与主音的差异，并唱出这两个音。</li></ul><ul class="notion-list notion-list-disc notion-block-da3f26fae9e8423081678e049a7743cf"><li>最后，选择测试音在音级中的位置，比如1、2、3……7。</li></ul><div class="notion-text notion-block-8b3e403ca6564f4f9fc0c0c2d0c5cdd4">这个方法通过听辨和模唱，可以帮助你理解音级在调中的功能，训练你的听觉辨识能力。</div><hr class="notion-hr notion-block-4be3dbe8ee1b4de29db1b19ebca524c0"/><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-eb4cf34fa3214155bc0c27f24fe3d5cd" data-id="eb4cf34fa3214155bc0c27f24fe3d5cd"><span><div id="eb4cf34fa3214155bc0c27f24fe3d5cd" class="notion-header-anchor"></div><a class="notion-hash-link" href="#eb4cf34fa3214155bc0c27f24fe3d5cd" title="4. 网站功能介绍"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">4. <b>网站功能介绍</b></span></span></h3><h4 class="notion-h notion-h3 notion-h-indent-1 notion-block-f1a0359577404d44925d0f49dc2f029a" data-id="f1a0359577404d44925d0f49dc2f029a"><span><div id="f1a0359577404d44925d0f49dc2f029a" class="notion-header-anchor"></div><a class="notion-hash-link" href="#f1a0359577404d44925d0f49dc2f029a" title="免提模式"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>免提模式</b></span></span></h4><ul class="notion-list notion-list-disc notion-block-bc395a861adb4b47a21014610da9e879"><li>开启<b>免提模式</b>后，系统会自动播放正确答案，适合用来练习音高记忆和音程感知，不需要手动选择答案。</li></ul><h4 class="notion-h notion-h3 notion-h-indent-1 notion-block-cf4ecbf42917461b886ae137e5deb2ba" data-id="cf4ecbf42917461b886ae137e5deb2ba"><span><div id="cf4ecbf42917461b886ae137e5deb2ba" class="notion-header-anchor"></div><a class="notion-hash-link" href="#cf4ecbf42917461b886ae137e5deb2ba" title="设置选项"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>设置选项</b></span></span></h4><ul class="notion-list notion-list-disc notion-block-aa46b762299b4ab09478e066b4c1b2fb"><li><b>音量设置</b>：调整<b>主音音量</b>（持续音）和<b>测试音量</b>（测试音），根据环境选择合适的音量，手机上操作主音音量会比较小，需要调大一点。</li></ul><ul class="notion-list notion-list-disc notion-block-997ff179d71c46be9935536de524c4b6"><li><b>音符范围</b>：设置练习的音高范围，限制在低音区、中音区或高音区。</li></ul><ul class="notion-list notion-list-disc notion-block-ad6548853b574dbab0b83feb6b61d96f"><li><b>选择音级</b>：指定想要练习的音级（比如3-5或1-7），从简单到复杂逐步提高。</li></ul><ul class="notion-list notion-list-disc notion-block-f03848f480924b9bb87fb1f868e6d2eb"><li><b>BPM设置</b>：调整练习速度，适应个人的节奏需求。</li></ul><h4 class="notion-h notion-h3 notion-h-indent-1 notion-block-f151cd05dd344aa08b20330840d6d2ce" data-id="f151cd05dd344aa08b20330840d6d2ce"><span><div id="f151cd05dd344aa08b20330840d6d2ce" class="notion-header-anchor"></div><a class="notion-hash-link" href="#f151cd05dd344aa08b20330840d6d2ce" title="统计数据"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>统计数据</b></span></span></h4><ul class="notion-list notion-list-disc notion-block-0ea5018fb6f9470c984dd26eb0b7ff5a"><li>查看自己的<b>总尝试次数</b>、<b>正确数</b>和<b>正确率</b>，方便追踪练习进展。</li></ul><h4 class="notion-h notion-h3 notion-h-indent-1 notion-block-b3d7c6523492454792fbb924a843d773" data-id="b3d7c6523492454792fbb924a843d773"><span><div id="b3d7c6523492454792fbb924a843d773" class="notion-header-anchor"></div><a class="notion-hash-link" href="#b3d7c6523492454792fbb924a843d773" title="删除数据"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>删除数据</b></span></span></h4><ul class="notion-list notion-list-disc notion-block-8fbcea3f431b418f80e249120beb6d18"><li>删除本地统计数据，清除历史记录，重新开始。</li></ul><hr class="notion-hr notion-block-f6a00906852a499c91f468b0bfcb9615"/><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-a89a4273427741e6bb1044e0f4da2641" data-id="a89a4273427741e6bb1044e0f4da2641"><span><div id="a89a4273427741e6bb1044e0f4da2641" class="notion-header-anchor"></div><a class="notion-hash-link" href="#a89a4273427741e6bb1044e0f4da2641" title="5. 挑战模式与自由训练"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">5. <b>挑战模式与自由训练</b></span></span></h3><ul class="notion-list notion-list-disc notion-block-87961e6512f847d2a24c8741cb15872d"><li><b>挑战模式</b>：一次完成30道题目，正确率达到90%才能解锁下一级。适合目标明确的进阶练习。</li></ul><ul class="notion-list notion-list-disc notion-block-bb1d3d49b7a74403a444d0de85a1467c"><li><b>自由训练</b>：没有限制，可以随意选择练习内容，适合轻松体验或重点练习。</li></ul><h3 class="notion-h notion-h2 notion-h-indent-0 notion-block-1635d52ed56e80bcb969e860873c2021" data-id="1635d52ed56e80bcb969e860873c2021"><span><div id="1635d52ed56e80bcb969e860873c2021" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1635d52ed56e80bcb969e860873c2021" title="6.快捷键介绍"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">6.快捷键介绍</span></span></h3><ul class="notion-list notion-list-disc notion-block-1635d52ed56e80338af9c05c2cb1c7d5"><li>可以用电脑键盘的数字键1234567代表1234567级答题，相比于鼠标定位去点按钮更加方便。</li></ul><ul class="notion-list notion-list-disc notion-block-1635d52ed56e80598959f367ad2a36c6"><li>如果有midi键盘，也可以直接演奏相应音符答题，练耳的同时还能练习键位感觉。</li></ul></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[迁移Conda环境]]></title>
            <link>https://blog.barnman.cc/linux/move-conda-environment</link>
            <guid>https://blog.barnman.cc/linux/move-conda-environment</guid>
            <pubDate>Tue, 19 Nov 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[在学生实验课中，机房的网络速度往往无法满足在课堂上安装 Anaconda 及相关包（如 PyTorch、Matplotlib、NumPy 等）的需求。为了确保每位学生都能顺利进行实验，需要通过离线方式批量复制环境。]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-1435d52ed56e80469aaeff735c4a6902"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-53d6704deade406aacff1cd515054a85" data-id="53d6704deade406aacff1cd515054a85"><span><div id="53d6704deade406aacff1cd515054a85" class="notion-header-anchor"></div><a class="notion-hash-link" href="#53d6704deade406aacff1cd515054a85" title="Conda环境批量迁移笔记"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">Conda环境批量迁移笔记</span></span></h2><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-7187d7754892479f9a2d7d0b90c6ae3b" data-id="7187d7754892479f9a2d7d0b90c6ae3b"><span><div id="7187d7754892479f9a2d7d0b90c6ae3b" class="notion-header-anchor"></div><a class="notion-hash-link" href="#7187d7754892479f9a2d7d0b90c6ae3b" title="为什么需要批量复制环境？"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">为什么需要批量复制环境？</span></span></h3><div class="notion-text notion-block-52bd3bf58d104133bdcf3c0da44b3aff">在学生实验课中，机房的网络速度往往无法满足在课堂上安装 Anaconda 及相关包（如 PyTorch、Matplotlib、NumPy 等）的需求。为了确保每位学生都能顺利进行实验，需要通过离线方式批量复制环境。</div><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-ae55918a52e94ea7b3b1fccbb62c0e2f" data-id="ae55918a52e94ea7b3b1fccbb62c0e2f"><span><div id="ae55918a52e94ea7b3b1fccbb62c0e2f" class="notion-header-anchor"></div><a class="notion-hash-link" href="#ae55918a52e94ea7b3b1fccbb62c0e2f" title="操作步骤"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">操作步骤</span></span></h3><ol start="1" class="notion-list notion-list-numbered notion-block-e9db4c2822934d23ae9f22c11dbdc6fe"><li><b>找到环境文件夹：</b> 前往 Anaconda 的安装路径，例如：</li><ol class="notion-list notion-list-numbered notion-block-e9db4c2822934d23ae9f22c11dbdc6fe"></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-4194fd1f621445609067c64250930187"><li><b>复制环境文件夹：</b> 将 <code class="notion-inline-code">env_name</code> 这个环境的文件夹压缩、复制出来，保存到移动存储设备上。</li></ol><ol start="3" class="notion-list notion-list-numbered notion-block-fb19089255124a9cbfb8aabc6b27c2cd"><li><b>粘贴到新电脑：</b> 在另一台 Windows 电脑上，将复制的环境文件夹解压、粘贴到对应的 Anaconda 环境目录下。</li></ol><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-fd5c56d9ae8a4ea1a38b80cfb8d9c0b6" data-id="fd5c56d9ae8a4ea1a38b80cfb8d9c0b6"><span><div id="fd5c56d9ae8a4ea1a38b80cfb8d9c0b6" class="notion-header-anchor"></div><a class="notion-hash-link" href="#fd5c56d9ae8a4ea1a38b80cfb8d9c0b6" title="注意事项"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">注意事项</span></span></h3><ul class="notion-list notion-list-disc notion-block-ac3b3993bbf4496280573b517d559d23"><li><b>Jupyter 的路径问题：</b> 由于 Jupyter 有配置文件，如果不同电脑的用户目录不同（例如，A 电脑的用户是 <code class="notion-inline-code">userA</code>，B 电脑是 <code class="notion-inline-code">userB</code>），会导致路径错误。解决方法是重新安装 Jupyter：</li><ul class="notion-list notion-list-disc notion-block-ac3b3993bbf4496280573b517d559d23"></ul></ul><ul class="notion-list notion-list-disc notion-block-860a4ab8a9af4373a8e95bbf6b3b6c58"><li><b>避免路径问题的方法：</b> 在所有电脑上都使用系统范围安装的 Anaconda，这样软件会安装在 <code class="notion-inline-code">C://ProgramData</code> 而不是每个用户的独立目录中。这样，所有电脑的 Anaconda 路径都相同，避免了路径不一致的问题。</li></ul><div class="notion-text notion-block-81ad3f428aa4422282bbdf748efe6cf1">通过以上方法，可以高效地在多台电脑上部署相同的 Conda 环境，满足离线环境下的教学需求。</div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Docker 网络配置，以Yacd 为例]]></title>
            <link>https://blog.barnman.cc/linux/docker-network-setup</link>
            <guid>https://blog.barnman.cc/linux/docker-network-setup</guid>
            <pubDate>Sat, 02 Nov 2024 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-1325d52ed56e806f86aec97e71299ce9"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><div class="notion-text notion-block-6d1106ef3e4941f2a39c0dd8115d3a34"><b>Docker image</b></div><ul class="notion-list notion-list-disc notion-block-408135d2921b40b783fd4829d02bcd24"><li>Docker Hub <code class="notion-inline-code"><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://hub.docker.com/r/haishanh/yacd">haishanh/yacd</a></code></li></ul><ul class="notion-list notion-list-disc notion-block-84d99db04c204a728001fe84645bfd21"><li>GitHub Container Registry <code class="notion-inline-code"><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://github.com/haishanh/yacd/pkgs/container/yacd">ghcr.io/haishanh/yacd</a></code></li></ul><h4 class="notion-h notion-h3 notion-h-indent-0 notion-block-b57cb744be364a369920be908faca287" data-id="b57cb744be364a369920be908faca287"><span><div id="b57cb744be364a369920be908faca287" class="notion-header-anchor"></div><a class="notion-hash-link" href="#b57cb744be364a369920be908faca287" title="Docker Container with Fixed IP and IPtables Rules for IP Range"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">Docker Container with Fixed IP and IPtables Rules for IP Range</span></span></h4><ol start="1" class="notion-list notion-list-numbered notion-block-5666a7594bc3472a8493d0ebf234a5e0"><li><b>Create Custom Docker Network</b>:</li><ol class="notion-list notion-list-numbered notion-block-5666a7594bc3472a8493d0ebf234a5e0"></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-bdae8ec2928a4bb28657d8c179d92b85"><li><b>Run Container with Fixed IP</b>:</li><ol class="notion-list notion-list-numbered notion-block-bdae8ec2928a4bb28657d8c179d92b85"></ol></ol><ol start="3" class="notion-list notion-list-numbered notion-block-dc10e8af515544a2a0ee918804047fc7"><li><b>Set IPtables Rules for Allowed Range (10.8.0.0/24)</b>:</li><ol class="notion-list notion-list-numbered notion-block-dc10e8af515544a2a0ee918804047fc7"><ul class="notion-list notion-list-disc notion-block-7b9cd0b726994667a3035e2f8666896b"><li>Allow access to ip <code class="notion-inline-code">A</code> for IPs in the <code class="notion-inline-code">10.8.0.0/24</code> range:</li><ul class="notion-list notion-list-disc notion-block-7b9cd0b726994667a3035e2f8666896b"></ul></ul><ul class="notion-list notion-list-disc notion-block-0ba9c108822b4011b9e164b356664845"><li>Block all other access to ip <code class="notion-inline-code">A</code>:</li><ul class="notion-list notion-list-disc notion-block-0ba9c108822b4011b9e164b356664845"></ul></ul></ol></ol><div class="notion-text notion-block-5a0d52caf77e458c91fc81e18f597d71">This configuration enables access for the <code class="notion-inline-code">10.8.0.x</code> IP range while blocking others.</div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[吉他练习]]></title>
            <link>https://blog.barnman.cc/music/all-exercises</link>
            <guid>https://blog.barnman.cc/music/all-exercises</guid>
            <pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[这里汇集了一系列多样化的音乐练习。长时间专注于单一类型的练习可能会导致收益递减，就像一个被子装满水后再加水就会溢出一样。]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-797b29df1eef447c83861145c8db2722"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-a313ff8a9a59460d815606f392d86521" data-id="a313ff8a9a59460d815606f392d86521"><span><div id="a313ff8a9a59460d815606f392d86521" class="notion-header-anchor"></div><a class="notion-hash-link" href="#a313ff8a9a59460d815606f392d86521" title="音乐练习汇总"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">音乐练习汇总</span></span></h2><div class="notion-text notion-block-78051a638dfb4eb7a1b2386dce0de585">这里汇集了一系列多样化的音乐练习。长时间专注于单一类型的练习可能会导致收益递减，就像一个被子装满水后再加水就会溢出一样。因此，我们采用短时间内练习多种类型的方法，然后给予大脑适当的休息时间来消化和巩固所学内容。</div><div class="notion-text notion-block-d81bae16750c4842b6f39d8a64af6828">这个练习集合的目的是：</div><ul class="notion-list notion-list-disc notion-block-f2dff7f26c1d40869a9728dff379beaf"><li>提供多样化的练习选择，以避免单调和疲劳</li></ul><ul class="notion-list notion-list-disc notion-block-bb76a3fe515e4ed0af835a179d8fbf97"><li>允许在不同技能和领域之间灵活切换</li></ul><ul class="notion-list notion-list-disc notion-block-3abd53cd19cd41b380cbdea639477e1c"><li>优化学习效率，通过适度休息来促进大脑的恢复和巩固</li></ul><ul class="notion-list notion-list-disc notion-block-a09f8a64ace147b7811cb1d1b486b228"><li>根据当前需求和状态，随时可以从这里挑选合适的练习</li></ul><div class="notion-text notion-block-b4ea6808be6040019ba069fd4bdc963f">记住，选择练习时要考虑你的目标、当前状态和可用时间。合理安排练习和休息，才能实现最佳的学习效果。</div><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-ecf3d8e2e243443fb19007cf30f89ff2" data-id="ecf3d8e2e243443fb19007cf30f89ff2"><span><div id="ecf3d8e2e243443fb19007cf30f89ff2" class="notion-header-anchor"></div><a class="notion-hash-link" href="#ecf3d8e2e243443fb19007cf30f89ff2" title="练习技巧"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">练习技巧</span></span></h3><div class="notion-text notion-block-dada05e2779a46d4b1e6bd95141e1194">练习时不需要一次性推广到所有12个调或音符。练习是无穷无尽的，而我们也要适度。慢慢来，注重质量而非数量。一次练三五个调已经是喜人的过程，有所进步就行。</div><div class="notion-blank notion-block-5688dadfabd84fd7b7aa3c4343a751a4"> </div><div><div></div><div class="notion-collection-header"><div class="notion-collection-header-title">Exercises</div></div></div><div class="notion-collection notion-block-80dbc1501e534530b8c2c9129c7ce56a"><details open="" class="notion-collection-group"><summary class="notion-collection-group-title" style="padding-left:96px;padding-right:96px"><div><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-orange">手指训练</div></span><span class="notion-board-th-count"></span></div></summary><div class="notion-table" style="width:1024px;max-width:1024px"><div class="notion-table-view" style="padding-left:96px;padding-right:96px"><div class="notion-table-header"><div class="notion-table-header-inner"><div class="notion-table-th"><div class="notion-table-view-header-cell" style="width:276px"><div class="notion-table-view-header-cell-inner"><div class="notion-collection-column-title"><svg viewBox="0 0 14 14" class="notion-collection-column-title-icon"><path d="M7.74 8.697a.81.81 0 01.073.308.894.894 0 01-.9.888.867.867 0 01-.825-.592l-.333-.961H2.058l-.333.961a.882.882 0 01-.838.592A.884.884 0 010 9.005c0-.11.025-.222.062-.308l2.403-6.211c.222-.58.776-.986 1.442-.986.653 0 1.22.407 1.442.986l2.39 6.211zM2.6 6.824h2.613L3.907 3.102 2.6 6.824zm8.8-3.118c1.355 0 2.6.542 2.6 2.255V9.08a.8.8 0 01-.789.814.797.797 0 01-.788-.703c-.395.468-1.097.764-1.874.764-.949 0-2.07-.64-2.07-1.972 0-1.392 1.121-1.897 2.07-1.897.789 0 1.491.246 1.886.727v-.826c0-.604-.518-.998-1.306-.998-.469 0-.888.123-1.32.394a.64.64 0 01-.307.086.602.602 0 01-.592-.604c0-.221.123-.419.284-.517a3.963 3.963 0 012.206-.641zm-.222 5.188c.505 0 .998-.172 1.257-.517v-.74c-.259-.345-.752-.517-1.257-.517-.616 0-1.122.332-1.122.9 0 .554.506.874 1.122.874zM.656 11.125h12.688a.656.656 0 110 1.313H.656a.656.656 0 110-1.313z"></path></svg><div class="notion-collection-column-title-body">Name</div></div></div></div></div><div class="notion-table-th"><div class="notion-table-view-header-cell" style="width:200px"><div class="notion-table-view-header-cell-inner"><div class="notion-collection-column-title"><svg viewBox="0 0 14 14" class="notion-collection-column-title-icon"><path d="M4 3a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zm0 4a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zm0 4a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zM2 4a1 1 0 110-2 1 1 0 010 2zm0 4a1 1 0 110-2 1 1 0 010 2zm0 4a1 1 0 110-2 1 1 0 010 2z"></path></svg><div class="notion-collection-column-title-body">Tags</div></div></div></div></div></div></div><div class="notion-table-header-placeholder"></div><div class="notion-table-body"><div class="notion-table-row"><div class="notion-table-cell notion-table-cell-title" style="width:276px"><span class="notion-property notion-property-title"><a class="notion-page-link" href="/136fd698939b4d7ca4412a27b6ac39f0"><span class="notion-page-title"><div class="notion-page-icon-inline notion-page-icon-image"><svg class="notion-page-title-icon notion-page-icon" alt="爬格子" viewBox="0 0 30 30" width="16"><path d="M16,1H4v28h22V11L16,1z M16,3.828L23.172,11H16V3.828z M24,27H6V3h8v10h10V27z M8,17h14v-2H8V17z M8,21h14v-2H8V21z M8,25h14v-2H8V25z"></path></svg></div><span class="notion-page-title-text">爬格子</span></span></a></span></div><div class="notion-table-cell notion-table-cell-multi_select" style="width:200px"><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-orange">手指训练</div></span></div></div></div></div></div></details><details open="" class="notion-collection-group"><summary class="notion-collection-group-title" style="padding-left:96px;padding-right:96px"><div><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-brown">熟悉指板</div></span><span class="notion-board-th-count"></span></div></summary><div class="notion-table" style="width:1024px;max-width:1024px"><div class="notion-table-view" style="padding-left:96px;padding-right:96px"><div class="notion-table-header"><div class="notion-table-header-inner"><div class="notion-table-th"><div class="notion-table-view-header-cell" style="width:276px"><div class="notion-table-view-header-cell-inner"><div class="notion-collection-column-title"><svg viewBox="0 0 14 14" class="notion-collection-column-title-icon"><path d="M7.74 8.697a.81.81 0 01.073.308.894.894 0 01-.9.888.867.867 0 01-.825-.592l-.333-.961H2.058l-.333.961a.882.882 0 01-.838.592A.884.884 0 010 9.005c0-.11.025-.222.062-.308l2.403-6.211c.222-.58.776-.986 1.442-.986.653 0 1.22.407 1.442.986l2.39 6.211zM2.6 6.824h2.613L3.907 3.102 2.6 6.824zm8.8-3.118c1.355 0 2.6.542 2.6 2.255V9.08a.8.8 0 01-.789.814.797.797 0 01-.788-.703c-.395.468-1.097.764-1.874.764-.949 0-2.07-.64-2.07-1.972 0-1.392 1.121-1.897 2.07-1.897.789 0 1.491.246 1.886.727v-.826c0-.604-.518-.998-1.306-.998-.469 0-.888.123-1.32.394a.64.64 0 01-.307.086.602.602 0 01-.592-.604c0-.221.123-.419.284-.517a3.963 3.963 0 012.206-.641zm-.222 5.188c.505 0 .998-.172 1.257-.517v-.74c-.259-.345-.752-.517-1.257-.517-.616 0-1.122.332-1.122.9 0 .554.506.874 1.122.874zM.656 11.125h12.688a.656.656 0 110 1.313H.656a.656.656 0 110-1.313z"></path></svg><div class="notion-collection-column-title-body">Name</div></div></div></div></div><div class="notion-table-th"><div class="notion-table-view-header-cell" style="width:200px"><div class="notion-table-view-header-cell-inner"><div class="notion-collection-column-title"><svg viewBox="0 0 14 14" class="notion-collection-column-title-icon"><path d="M4 3a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zm0 4a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zm0 4a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zM2 4a1 1 0 110-2 1 1 0 010 2zm0 4a1 1 0 110-2 1 1 0 010 2zm0 4a1 1 0 110-2 1 1 0 010 2z"></path></svg><div class="notion-collection-column-title-body">Tags</div></div></div></div></div></div></div><div class="notion-table-header-placeholder"></div><div class="notion-table-body"><div class="notion-table-row"><div class="notion-table-cell notion-table-cell-title" style="width:276px"><span class="notion-property notion-property-title"><a class="notion-page-link" href="/8d21e0cbe2ba47aab29606ea6daa7835"><span class="notion-page-title"><div class="notion-page-icon-inline notion-page-icon-image"><svg class="notion-page-title-icon notion-page-icon" alt="找音" viewBox="0 0 30 30" width="16"><path d="M16,1H4v28h22V11L16,1z M16,3.828L23.172,11H16V3.828z M24,27H6V3h8v10h10V27z M8,17h14v-2H8V17z M8,21h14v-2H8V21z M8,25h14v-2H8V25z"></path></svg></div><span class="notion-page-title-text">找音</span></span></a></span></div><div class="notion-table-cell notion-table-cell-multi_select" style="width:200px"><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-brown">熟悉指板</div></span></div></div><div class="notion-table-row"><div class="notion-table-cell notion-table-cell-title" style="width:276px"><span class="notion-property notion-property-title"><a class="notion-page-link" href="/3a9ea78ee7f249eda7727668d68b2db1"><span class="notion-page-title"><div class="notion-page-icon-inline notion-page-icon-image"><svg class="notion-page-title-icon notion-page-icon" alt="构造水平和弦" viewBox="0 0 30 30" width="16"><path d="M16,1H4v28h22V11L16,1z M16,3.828L23.172,11H16V3.828z M24,27H6V3h8v10h10V27z M8,17h14v-2H8V17z M8,21h14v-2H8V21z M8,25h14v-2H8V25z"></path></svg></div><span class="notion-page-title-text">构造水平和弦</span></span></a></span></div><div class="notion-table-cell notion-table-cell-multi_select" style="width:200px"><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-brown">熟悉指板</div></span></div></div><div class="notion-table-row"><div class="notion-table-cell notion-table-cell-title" style="width:276px"><span class="notion-property notion-property-title"><a class="notion-page-link" href="/ea82df646fe54b79b7e16843d402abdc"><span class="notion-page-title"><div class="notion-page-icon-inline notion-page-icon-image"><svg class="notion-page-title-icon notion-page-icon" alt="构造垂直和弦" viewBox="0 0 30 30" width="16"><path d="M16,1H4v28h22V11L16,1z M16,3.828L23.172,11H16V3.828z M24,27H6V3h8v10h10V27z M8,17h14v-2H8V17z M8,21h14v-2H8V21z M8,25h14v-2H8V25z"></path></svg></div><span class="notion-page-title-text">构造垂直和弦</span></span></a></span></div><div class="notion-table-cell notion-table-cell-multi_select" style="width:200px"><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-brown">熟悉指板</div></span></div></div><div class="notion-table-row"><div class="notion-table-cell notion-table-cell-title" style="width:276px"><span class="notion-property notion-property-title"><a class="notion-page-link" href="/063fc2e0700f4f6996a60e02c51174f7"><span class="notion-page-title"><div class="notion-page-icon-inline notion-page-icon-image"><svg class="notion-page-title-icon notion-page-icon" alt="构造原位和弦" viewBox="0 0 30 30" width="16"><path d="M16,1H4v28h22V11L16,1z M16,3.828L23.172,11H16V3.828z M24,27H6V3h8v10h10V27z M8,17h14v-2H8V17z M8,21h14v-2H8V21z M8,25h14v-2H8V25z"></path></svg></div><span class="notion-page-title-text">构造原位和弦</span></span></a></span></div><div class="notion-table-cell notion-table-cell-multi_select" style="width:200px"><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-brown">熟悉指板</div></span></div></div><div class="notion-table-row"><div class="notion-table-cell notion-table-cell-title" style="width:276px"><span class="notion-property notion-property-title"><a class="notion-page-link" href="/2a18da220aad4ae991eaefbad6ff43aa"><span class="notion-page-title"><div class="notion-page-icon-inline notion-page-icon-image"><svg class="notion-page-title-icon notion-page-icon" alt="构造一转" viewBox="0 0 30 30" width="16"><path d="M16,1H4v28h22V11L16,1z M16,3.828L23.172,11H16V3.828z M24,27H6V3h8v10h10V27z M8,17h14v-2H8V17z M8,21h14v-2H8V21z M8,25h14v-2H8V25z"></path></svg></div><span class="notion-page-title-text">构造一转</span></span></a></span></div><div class="notion-table-cell notion-table-cell-multi_select" style="width:200px"><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-brown">熟悉指板</div></span></div></div><div class="notion-table-row"><div class="notion-table-cell notion-table-cell-title" style="width:276px"><span class="notion-property notion-property-title"><a class="notion-page-link" href="/c1d3035b6dd94da795c34e128efc8315"><span class="notion-page-title"><div class="notion-page-icon-inline notion-page-icon-image"><svg class="notion-page-title-icon notion-page-icon" alt="构造二转" viewBox="0 0 30 30" width="16"><path d="M16,1H4v28h22V11L16,1z M16,3.828L23.172,11H16V3.828z M24,27H6V3h8v10h10V27z M8,17h14v-2H8V17z M8,21h14v-2H8V21z M8,25h14v-2H8V25z"></path></svg></div><span class="notion-page-title-text">构造二转</span></span></a></span></div><div class="notion-table-cell notion-table-cell-multi_select" style="width:200px"><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-brown">熟悉指板</div></span></div></div><div class="notion-table-row"><div class="notion-table-cell notion-table-cell-title" style="width:276px"><span class="notion-property notion-property-title"><a class="notion-page-link" href="/bbb2ed4ceb9a485f9043b9b963080dff"><span class="notion-page-title"><div class="notion-page-icon-inline notion-page-icon-image"><svg class="notion-page-title-icon notion-page-icon" alt="练习音阶" viewBox="0 0 30 30" width="16"><path d="M16,1H4v28h22V11L16,1z M16,3.828L23.172,11H16V3.828z M24,27H6V3h8v10h10V27z M8,17h14v-2H8V17z M8,21h14v-2H8V21z M8,25h14v-2H8V25z"></path></svg></div><span class="notion-page-title-text">练习音阶</span></span></a></span></div><div class="notion-table-cell notion-table-cell-multi_select" style="width:200px"><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-brown">熟悉指板</div></span></div></div></div></div></div></details><details open="" class="notion-collection-group"><summary class="notion-collection-group-title" style="padding-left:96px;padding-right:96px"><div><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-gray">练耳</div></span><span class="notion-board-th-count"></span></div></summary><div class="notion-table" style="width:1024px;max-width:1024px"><div class="notion-table-view" style="padding-left:96px;padding-right:96px"><div class="notion-table-header"><div class="notion-table-header-inner"><div class="notion-table-th"><div class="notion-table-view-header-cell" style="width:276px"><div class="notion-table-view-header-cell-inner"><div class="notion-collection-column-title"><svg viewBox="0 0 14 14" class="notion-collection-column-title-icon"><path d="M7.74 8.697a.81.81 0 01.073.308.894.894 0 01-.9.888.867.867 0 01-.825-.592l-.333-.961H2.058l-.333.961a.882.882 0 01-.838.592A.884.884 0 010 9.005c0-.11.025-.222.062-.308l2.403-6.211c.222-.58.776-.986 1.442-.986.653 0 1.22.407 1.442.986l2.39 6.211zM2.6 6.824h2.613L3.907 3.102 2.6 6.824zm8.8-3.118c1.355 0 2.6.542 2.6 2.255V9.08a.8.8 0 01-.789.814.797.797 0 01-.788-.703c-.395.468-1.097.764-1.874.764-.949 0-2.07-.64-2.07-1.972 0-1.392 1.121-1.897 2.07-1.897.789 0 1.491.246 1.886.727v-.826c0-.604-.518-.998-1.306-.998-.469 0-.888.123-1.32.394a.64.64 0 01-.307.086.602.602 0 01-.592-.604c0-.221.123-.419.284-.517a3.963 3.963 0 012.206-.641zm-.222 5.188c.505 0 .998-.172 1.257-.517v-.74c-.259-.345-.752-.517-1.257-.517-.616 0-1.122.332-1.122.9 0 .554.506.874 1.122.874zM.656 11.125h12.688a.656.656 0 110 1.313H.656a.656.656 0 110-1.313z"></path></svg><div class="notion-collection-column-title-body">Name</div></div></div></div></div><div class="notion-table-th"><div class="notion-table-view-header-cell" style="width:200px"><div class="notion-table-view-header-cell-inner"><div class="notion-collection-column-title"><svg viewBox="0 0 14 14" class="notion-collection-column-title-icon"><path d="M4 3a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zm0 4a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zm0 4a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zM2 4a1 1 0 110-2 1 1 0 010 2zm0 4a1 1 0 110-2 1 1 0 010 2zm0 4a1 1 0 110-2 1 1 0 010 2z"></path></svg><div class="notion-collection-column-title-body">Tags</div></div></div></div></div></div></div><div class="notion-table-header-placeholder"></div><div class="notion-table-body"><div class="notion-table-row"><div class="notion-table-cell notion-table-cell-title" style="width:276px"><span class="notion-property notion-property-title"><a class="notion-page-link" href="/215d95206d1e4af2a612d8efcccc288d"><span class="notion-page-title"><div class="notion-page-icon-inline notion-page-icon-image"><svg class="notion-page-title-icon notion-page-icon" alt="弹一个大和弦唱自然大调" viewBox="0 0 30 30" width="16"><path d="M16,1H4v28h22V11L16,1z M16,3.828L23.172,11H16V3.828z M24,27H6V3h8v10h10V27z M8,17h14v-2H8V17z M8,21h14v-2H8V21z M8,25h14v-2H8V25z"></path></svg></div><span class="notion-page-title-text">弹一个大和弦唱自然大调</span></span></a></span></div><div class="notion-table-cell notion-table-cell-multi_select" style="width:200px"><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-gray">练耳</div></span></div></div><div class="notion-table-row"><div class="notion-table-cell notion-table-cell-title" style="width:276px"><span class="notion-property notion-property-title"><a class="notion-page-link" href="/9013dcfaa37a4c1aa41befb74649e89f"><span class="notion-page-title"><div class="notion-page-icon-inline notion-page-icon-image"><svg class="notion-page-title-icon notion-page-icon" alt="弹一级大和弦唱245679音" viewBox="0 0 30 30" width="16"><path d="M16,1H4v28h22V11L16,1z M16,3.828L23.172,11H16V3.828z M24,27H6V3h8v10h10V27z M8,17h14v-2H8V17z M8,21h14v-2H8V21z M8,25h14v-2H8V25z"></path></svg></div><span class="notion-page-title-text">弹一级大和弦唱245679音</span></span></a></span></div><div class="notion-table-cell notion-table-cell-multi_select" style="width:200px"><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item notion-item-gray">练耳</div></span></div></div></div></div></div></details><details open="" class="notion-collection-group"><summary class="notion-collection-group-title" style="padding-left:96px;padding-right:96px"><div><span class="notion-property notion-property-multi_select"><div class="notion-property-multi_select-item">No description</div></span><span class="notion-board-th-count"></span></div></summary><div class="notion-table" style="width:1024px;max-width:1024px"><div class="notion-table-view" style="padding-left:96px;padding-right:96px"><div class="notion-table-header"><div class="notion-table-header-inner"><div class="notion-table-th"><div class="notion-table-view-header-cell" style="width:276px"><div class="notion-table-view-header-cell-inner"><div class="notion-collection-column-title"><svg viewBox="0 0 14 14" class="notion-collection-column-title-icon"><path d="M7.74 8.697a.81.81 0 01.073.308.894.894 0 01-.9.888.867.867 0 01-.825-.592l-.333-.961H2.058l-.333.961a.882.882 0 01-.838.592A.884.884 0 010 9.005c0-.11.025-.222.062-.308l2.403-6.211c.222-.58.776-.986 1.442-.986.653 0 1.22.407 1.442.986l2.39 6.211zM2.6 6.824h2.613L3.907 3.102 2.6 6.824zm8.8-3.118c1.355 0 2.6.542 2.6 2.255V9.08a.8.8 0 01-.789.814.797.797 0 01-.788-.703c-.395.468-1.097.764-1.874.764-.949 0-2.07-.64-2.07-1.972 0-1.392 1.121-1.897 2.07-1.897.789 0 1.491.246 1.886.727v-.826c0-.604-.518-.998-1.306-.998-.469 0-.888.123-1.32.394a.64.64 0 01-.307.086.602.602 0 01-.592-.604c0-.221.123-.419.284-.517a3.963 3.963 0 012.206-.641zm-.222 5.188c.505 0 .998-.172 1.257-.517v-.74c-.259-.345-.752-.517-1.257-.517-.616 0-1.122.332-1.122.9 0 .554.506.874 1.122.874zM.656 11.125h12.688a.656.656 0 110 1.313H.656a.656.656 0 110-1.313z"></path></svg><div class="notion-collection-column-title-body">Name</div></div></div></div></div><div class="notion-table-th"><div class="notion-table-view-header-cell" style="width:200px"><div class="notion-table-view-header-cell-inner"><div class="notion-collection-column-title"><svg viewBox="0 0 14 14" class="notion-collection-column-title-icon"><path d="M4 3a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zm0 4a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zm0 4a1 1 0 011-1h7a1 1 0 110 2H5a1 1 0 01-1-1zM2 4a1 1 0 110-2 1 1 0 010 2zm0 4a1 1 0 110-2 1 1 0 010 2zm0 4a1 1 0 110-2 1 1 0 010 2z"></path></svg><div class="notion-collection-column-title-body">Tags</div></div></div></div></div></div></div><div class="notion-table-header-placeholder"></div><div class="notion-table-body"></div></div></div></details></div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[买卖股票IV]]></title>
            <link>https://blog.barnman.cc/leetcode/buy-stock-IV</link>
            <guid>https://blog.barnman.cc/leetcode/buy-stock-IV</guid>
            <pubDate>Mon, 12 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[这篇博客详细讲解了如何解决买卖股票IV的问题]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-0922307b7ff446d2b8ba14060c2ae527"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-f202509648354695854d749b16d5a736" data-id="f202509648354695854d749b16d5a736"><span><div id="f202509648354695854d749b16d5a736" class="notion-header-anchor"></div><a class="notion-hash-link" href="#f202509648354695854d749b16d5a736" title="想法"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">想法</span></span></h2><div class="notion-text notion-block-49e8230ea19b4c93af69e47e9373fd7e">在股票交易中，寻找在最多 <code class="notion-inline-code">k</code> 次交易中获得最大利润的问题可以通过逐步考虑每一步的交易来分解。初步想法是使用动态规划来管理买入和卖出股票的不同状态。</div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-4c964cc0c1b34924affd30bf53dc89cb" data-id="4c964cc0c1b34924affd30bf53dc89cb"><span><div id="4c964cc0c1b34924affd30bf53dc89cb" class="notion-header-anchor"></div><a class="notion-hash-link" href="#4c964cc0c1b34924affd30bf53dc89cb" title="方法"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">方法</span></span></h2><div class="notion-text notion-block-a5be01c5a2da4dd3951185cd29a93003">这个方法的核心思想是维护两个表：<code class="notion-inline-code">buy</code> 和 <code class="notion-inline-code">sell</code>。<code class="notion-inline-code">buy[i][j]</code> 表示在进行 <code class="notion-inline-code">i</code> 次交易后的第 <code class="notion-inline-code">j</code> 天的最大利润，而 <code class="notion-inline-code">sell[i][j]</code> 表示在进行 <code class="notion-inline-code">i</code> 次交易后的第 <code class="notion-inline-code">j</code> 天卖出后的最大利润。</div><div class="notion-text notion-block-d4fa78a7345949e88c78e9e3998e2747">更新这些表的公式为：</div><ul class="notion-list notion-list-disc notion-block-ccf5e3efa3a74df9afefb4a54b106eba"><li><b>买入：</b></li><ul class="notion-list notion-list-disc notion-block-ccf5e3efa3a74df9afefb4a54b106eba"><div class="notion-text notion-block-4e710068b6df4539a6d75090db5501e9"></div><div class="notion-text notion-block-15fd25e29c36464290d9a1242de415f2">这意味着第 <code class="notion-inline-code">j</code> 天进行第 <code class="notion-inline-code">i</code> 次买入后的最大利润是</div><ol start="1" class="notion-list notion-list-numbered notion-block-a7e323a1d92f48a0b8141e7e8ecd7822"><li><b>当天不买入：</b>已经持有股票了（buy数组）的最大利润。</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-da48d8ff4dbd4ee68405fde3d1feaa6b"><li><b>当天买入：</b>是没持有股票的时候（sell数组）的最大利润减去当天的买入价格。</li></ol></ul></ul><ul class="notion-list notion-list-disc notion-block-87d0472e8a25425bbb018337f6bca38c"><li><b>卖出：</b></li><ul class="notion-list notion-list-disc notion-block-87d0472e8a25425bbb018337f6bca38c"><div class="notion-text notion-block-b74ad1707bf64d9aa85d5d19ec71ec9e"></div><div class="notion-text notion-block-b6167eb528c24289ba0bffd5b2f4a706">这意味着第 <code class="notion-inline-code">j</code> 天进行第 <code class="notion-inline-code">i</code> 次卖出后的最大利润是</div><ol start="1" class="notion-list notion-list-numbered notion-block-fcb83453871f4daea47fd4ce1b603a64"><li><b>当天不卖出：</b>前一天的最大利润</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-dfc87652984b413abc690c0be5f12f3f"><li><b>今天卖出：</b>最好的持仓利润加上当天的卖出价格。</li></ol></ul></ul><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-bec9a1c85d114343bf211dd5af5ab0e4" data-id="bec9a1c85d114343bf211dd5af5ab0e4"><span><div id="bec9a1c85d114343bf211dd5af5ab0e4" class="notion-header-anchor"></div><a class="notion-hash-link" href="#bec9a1c85d114343bf211dd5af5ab0e4" title="示例"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">示例</span></span></h2><div class="notion-text notion-block-f3f4a211cc744e2cb83982ae7b0ad4a3"><b>初始化（第0天）：</b></div><ul class="notion-list notion-list-disc notion-block-84343f8e86184fc08e0a87fbdec3eb88"><li><b>buy[0] 和 sell[0]：</b> 这些初始化用于提供计算的基线：</li><ul class="notion-list notion-list-disc notion-block-84343f8e86184fc08e0a87fbdec3eb88"><li><code class="notion-inline-code">buy[0][*]</code> 设置为 <code class="notion-inline-code">100001</code>，表示没有发生买入。</li><li><code class="notion-inline-code">sell[0][*]</code> 设置为 <code class="notion-inline-code">0</code>，因为还没有发生卖出。</li></ul></ul><div class="notion-text notion-block-819a3a5f98df4638b4c38d5dd310417b"><b>迭代1（第一次交易）：</b></div><ul class="notion-list notion-list-disc notion-block-4eef9fb621454dc0b53520eea429c082"><li><b>第1天：</b></li><ul class="notion-list notion-list-disc notion-block-4eef9fb621454dc0b53520eea429c082"><li><b>buy[1][1] = -3：</b> 第一天买入的价格为 <code class="notion-inline-code">3</code>，因此 <code class="notion-inline-code">buy[1][1] = -3</code>。这反映了潜在的利润（因为还没有卖出，所以是负的）。</li><li><b>sell[1][1] = 0：</b> 因为我们不能在买入当天卖出，卖出的最大利润仍然为 <code class="notion-inline-code">0</code>。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-04dc8494abc143ff8179f5806357b11c"><li><b>第2天：</b></li><ul class="notion-list notion-list-disc notion-block-04dc8494abc143ff8179f5806357b11c"><li><b>buy[1][2] = -2：</b> 第2天的价格为 <code class="notion-inline-code">2</code>，低于第1天。因此，第2天买入更有利，将 <code class="notion-inline-code">buy[1][2] = -2</code>。</li><li><b>sell[1][2] = 0：</b> 因为还没有卖出，利润仍然为 <code class="notion-inline-code">0</code>。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-c6e1f99361414538a88e4a09df419427"><li><b>第3天：</b></li><ul class="notion-list notion-list-disc notion-block-c6e1f99361414538a88e4a09df419427"><li><b>buy[1][3] = -2：</b> 尽管第3天的价格是 <code class="notion-inline-code">6</code>，但持有第2天以 <code class="notion-inline-code">2</code> 买入的股票仍然是最好的选择。因此，<code class="notion-inline-code">buy[1][3] = -2</code> 保持不变。</li><li><b>sell[1][3] = 4：</b> 如果我们以 <code class="notion-inline-code">6</code> 的价格卖出第2天买入的股票，利润为 <code class="notion-inline-code">4</code>，因此 <code class="notion-inline-code">sell[1][3] = 4</code>。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-c3b48f95675044df8510cfe6d4e4f5d3"><li><b>第4天：</b></li><ul class="notion-list notion-list-disc notion-block-c3b48f95675044df8510cfe6d4e4f5d3"><li><b>buy[1][4] = -2：</b> 第4天价格降至 <code class="notion-inline-code">5</code>，继续持有第2天的仓位（<code class="notion-inline-code">buy[1][4] = -2</code>）比以更高价格买入要好。</li><li><b>sell[1][4] = 4：</b> 如果不在第4天卖出，利润仍然为 <code class="notion-inline-code">4</code>。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-09d516ef938f493295eeb67ec14d0120"><li><b>第5天：</b></li><ul class="notion-list notion-list-disc notion-block-09d516ef938f493295eeb67ec14d0120"><li><b>buy[1][5] = 0：</b> 价格降至 <code class="notion-inline-code">0</code>，这是最好的买入时机。但是，由于这仍然是第一次交易的一部分，当天的最大潜在损失为 <code class="notion-inline-code">0</code>，更新为 <code class="notion-inline-code">buy[1][5] = 0</code>。</li><li><b>sell[1][5] = 4：</b> 第一次交易的最大利润仍然为 <code class="notion-inline-code">4</code>，如果没有卖出。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-5ee29e38edc1435da06ee80a4fdb2fe9"><li><b>第6天：</b></li><ul class="notion-list notion-list-disc notion-block-5ee29e38edc1435da06ee80a4fdb2fe9"><li><b>buy[1][6] = 0：</b> 买入决策保持与第5天相同，没有进一步的交易发生在这一迭代中。</li><li><b>sell[1][6] = 4：</b> 第一次交易的最大利润仍然为 <code class="notion-inline-code">4</code>，因为没有找到更好的卖出价格。</li></ul></ul><div class="notion-text notion-block-88c34cfc04484712aeaf3943beaf352a"><b>迭代2（第二次交易）：</b></div><ul class="notion-list notion-list-disc notion-block-aed9af77b0004a7bbacdaeadc5920375"><li><b>第1天：</b></li><ul class="notion-list notion-list-disc notion-block-aed9af77b0004a7bbacdaeadc5920375"><li><b>buy[2][1] = -3：</b> 如果在第1天进行了第二次交易的买入，潜在损失为 <code class="notion-inline-code">3</code>。</li><li><b>sell[2][1] = 0：</b> 由于没有发生卖出，利润仍然为 <code class="notion-inline-code">0</code>。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-fc084e1d97ab43c7985e3087971d6e40"><li><b>第2天：</b></li><ul class="notion-list notion-list-disc notion-block-fc084e1d97ab43c7985e3087971d6e40"><li><b>buy[2][2] = -2：</b> 第2天最好的行动是以 <code class="notion-inline-code">2</code> 的价格买入，因此 <code class="notion-inline-code">buy[2][2] = -2</code>。</li><li><b>sell[2][2] = 0：</b> 由于还没有卖出，利润仍然为 <code class="notion-inline-code">0</code>。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-670b87aebc244c9493db67bbdff2f0c1"><li><b>第3天：</b></li><ul class="notion-list notion-list-disc notion-block-670b87aebc244c9493db67bbdff2f0c1"><li><b>buy[2][3] = -2：</b> 持有第2天的仓位仍然是最好的选择，因此 <code class="notion-inline-code">buy[2][3] = -2</code>。</li><li><b>sell[2][3] = 4：</b> 在第3天以 <code class="notion-inline-code">6</code> 的价格卖出，获得的利润与第一次交易相同，因此 <code class="notion-inline-code">sell[2][3] = 4</code>。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-30a48ca47a504dbb9460be683e3d7666"><li><b>第4天：</b></li><ul class="notion-list notion-list-disc notion-block-30a48ca47a504dbb9460be683e3d7666"><li><b>buy[2][4] = -1：</b> 第4天，在完成第一次卖出后，第二次交易最好的选择是以 <code class="notion-inline-code">5</code> 的价格买入，因此 <code class="notion-inline-code">buy[2][4] = -1</code>。</li><li><b>sell[2][4] = 4：</b> 如果没有卖出，利润仍然为 <code class="notion-inline-code">4</code>。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-2ea7f4dbc7354f458d5fa43efdeb711a"><li><b>第5天：</b></li><ul class="notion-list notion-list-disc notion-block-2ea7f4dbc7354f458d5fa43efdeb711a"><li><b>buy[2][5] = 4：</b> 价格降至 <code class="notion-inline-code">0</code>，这是在第一次卖出后的最佳买入时机，更新为 <code class="notion-inline-code">buy[2][5] = 4</code>。这带来了第一次交易的利润。</li><li><b>sell[2][5] = 4：</b> 没有发生卖出，因此利润仍然为 <code class="notion-inline-code">4</code>。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-24b79c8935eb4fc890a5d55da82f800d"><li><b>第6天：</b></li><ul class="notion-list notion-list-disc notion-block-24b79c8935eb4fc890a5d55da82f800d"><li><b>buy[2][6] = 4：</b> 第5天的买入决策仍然有效，因为没有更好的机会出现。</li><li><b>sell[2][6] = 7：</b> 最后，在第6天以 <code class="notion-inline-code">3</code> 的价格卖出，第二次交易的最大利润为 <code class="notion-inline-code">7</code>。</li></ul></ul><h4 class="notion-h notion-h3 notion-h-indent-1 notion-block-6a989b342ec243bcb550ac2de3f94de7" data-id="6a989b342ec243bcb550ac2de3f94de7"><span><div id="6a989b342ec243bcb550ac2de3f94de7" class="notion-header-anchor"></div><a class="notion-hash-link" href="#6a989b342ec243bcb550ac2de3f94de7" title="最终结果："><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">最终结果：</span></span></h4><ul class="notion-list notion-list-disc notion-block-0b29da42d3d5403ab8f7e0493c8d3089"><li>完成两次迭代后，最多进行 <code class="notion-inline-code">2</code> 次交易所能获得的最大利润为 <code class="notion-inline-code">7</code>。这是在 <code class="notion-inline-code">sell[2][6]</code> 中找到的结果。</li></ul><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-ee9d8befaf5049ff85dbddcc91661aca" data-id="ee9d8befaf5049ff85dbddcc91661aca"><span><div id="ee9d8befaf5049ff85dbddcc91661aca" class="notion-header-anchor"></div><a class="notion-hash-link" href="#ee9d8befaf5049ff85dbddcc91661aca" title="复杂度"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">复杂度</span></span></h2><ul class="notion-list notion-list-disc notion-block-cba57ec02f2a4b4185373d6c83a412ad"><li>时间复杂度:</li><ul class="notion-list notion-list-disc notion-block-cba57ec02f2a4b4185373d6c83a412ad"><div class="notion-text notion-block-8d28624dd58745f2b66b265394365676">该解决方案的时间复杂度为 <!-- -->，因为我们遍历了交易次数 <code class="notion-inline-code">k</code> 和天数 <code class="notion-inline-code">n</code>。</div></ul></ul><ul class="notion-list notion-list-disc notion-block-61585c49baa948deb5bd56fdf83af6fd"><li>空间复杂度:</li><ul class="notion-list notion-list-disc notion-block-61585c49baa948deb5bd56fdf83af6fd"><div class="notion-text notion-block-9ccd938c236d44998cdceceeb32df314">空间复杂度为 <!-- -->，因为我们为 <code class="notion-inline-code">buy</code> 和 <code class="notion-inline-code">sell</code> 维护了二维数组。</div></ul></ul><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-d724acb19649490d88479f50d0cadf6c" data-id="d724acb19649490d88479f50d0cadf6c"><span><div id="d724acb19649490d88479f50d0cadf6c" class="notion-header-anchor"></div><a class="notion-hash-link" href="#d724acb19649490d88479f50d0cadf6c" title="代码"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">代码</span></span></h2><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-97abe5a3fec14e468a30fef2cc007eff" data-id="97abe5a3fec14e468a30fef2cc007eff"><span><div id="97abe5a3fec14e468a30fef2cc007eff" class="notion-header-anchor"></div><a class="notion-hash-link" href="#97abe5a3fec14e468a30fef2cc007eff" title="空间复杂度改进"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">空间复杂度改进</span></span></h2><div class="notion-text notion-block-df2af22de27f4e74a7c9529bd09e9880">为了优化空间复杂度，我们可以注意到第 <code class="notion-inline-code">i</code> 次交易仅依赖于上一次交易的结果。这使得我们可以将 <code class="notion-inline-code">buy</code> 和 <code class="notion-inline-code">sell</code> 表从二维数组减少为一维数组。通过这样做，空间复杂度从<!-- -->改善为 <!-- -->。</div><div class="notion-text notion-block-fd4f98bbb4da4de88e1f06702169bb13">以下是优化后的代码：</div><div class="notion-blank notion-block-1aa35fb2871644b380fae7cfd55e29e3"> </div></main></div>]]></content:encoded>
        </item>
    </channel>
</rss>