Dvorak
Dvorak

Dvorak Chen

All Posts in 2024.1


滑动窗口最大值

本篇博客详细解析了Leetcode上的一道题目——滑动窗口最大值。该题目要求从一个整数数组中,通过滑动窗口的方式,获取每个窗口中的最大值。博客首先介绍了题目的要求和示例,然后提出了一种直接的解决方法,即通过for循环遍历数组,对窗口中的子数组进行排序,获取最大值。但是这种方法的时间复杂度较高,无法满足题目要求。因此,博客提出了一种新的解决方法,即通过队列获取窗口中的最大值。在遍历数组的过程中,将遍历到的值加入队列,然后比较队列尾部的值和当前值,如果队列尾部的值小于当前值,就从队列中删除尾部的值,直到尾部的值大于当前值或队列为空,然后将当前值放入队列尾部。这样可以保证队列头部的值始终是窗口中的最大值。随着遍历的进行,如果队列头部的值不在窗口内,就将头部的值移出。这种方法的时间复杂度较低,能够满足题目要求。博客通过详细的代码示例,对这种解决方法进行了深入的解析和讲解。这种解决方法是否适用于所有的滑动窗口问题呢?如果窗口的大小不固定,这种方法还能否有效?--GPT 4

Algorithms

湘伦小雨四手联弹 - 低音部分和弦走向分析

本篇博客主要分析了湘伦小雨四手联弹的低音部分和弦走向。通过详细的音符、和弦图示和讲解,我们可以清晰地了解到这首曲子的和弦结构和旋律走向。博客首先通过调号确定了曲目的主调为E小调,然后逐小节分析了和弦的变化和功能,包括主调的确定、过渡和终止等。分析过程中,博客还详细解释了和弦的级数和构成,以及各级和弦在曲目中的作用和意义。例如,前三个小节的E下行B交替,组成了E小调i级和弦,起到明确主调的作用;第四小节的#C -> #D起过渡作用,过度到第五小节的E。之后的和弦走向为i -> V -> i -> iv -> i,构成了曲目的基本骨架。整个分析过程严谨细致,充满音乐理论知识,对于理解和学习这首曲目有着极大的帮助。你能否从这篇博客中找到音乐理论和实践相结合的魅力?你又能否从中感受到和弦在音乐中的重要作用,以及如何通过和弦分析理解和学习音乐作品?--GPT 4

music

Multiaddr - 面向未来的地址

本文详细介绍了Multiaddr这一面向未来的网络地址方式。Multiaddr以更加友好的方式描述网络地址,包含了比传统网络地址更多的信息,例如网络协议、加密协议等。它以人类可读、机器可读的形式存在,可以轻易地在机器中表示为二进制形式。然而,尽管Multiaddr的可读性较好,但它增加了程序实现的复杂性。使用Multiaddr的程序需要自己解析其中的协议,这会增加程序的工作量。此外,Multiaddr对于程序的耦合性较差,实际开发过程中可能不如传统方式。因此,尽管Multiaddr是一种有趣的地址方式,但由于没有配套的成套工具,且造轮子的成本高,作者并不推荐使用。那么,你对Multiaddr有什么看法呢?你认为它的优点能否弥补其缺点,使其在未来得到广泛应用?--GPT 4

network