算法周边
文章平均质量分 75
更新一些算法相关的知识
算法大师
全网最快最准最稳的华为OD专栏,提供答疑和在线OJ刷题,助力上岸OD!!!
展开
-
深入了解Java队列接口
队列的基本特征是元素按特定顺序存储,类似于等待轮流的人群,主要通过添加元素到队尾(入队)和从队首移除元素(出队)等操作来访问和操作元素。通过扩展 List 和 Queue,Java 中的 LinkedList 结合了这些接口的特性和底层链表数据结构,为各种用例提供了灵活性和效率。Java 的 LinkedList 类可用于实现队列,它还实现了 List 接口。它提供了一个双向链表实现,非常适合实现基本的 FIFO 队列。Java 的 ArrayDeque 类提供了一个双端队列实现,也可以用作队列。原创 2023-09-20 22:47:14 · 55 阅读 · 0 评论 -
通过Java理解Kruskal算法
今天,我将解析一段Java代码,该代码实现了Kruskal算法,用于在连通的无向图中找到最小生成树。原创 2023-09-20 22:38:09 · 67 阅读 · 0 评论 -
Leetcode - 寻找重复数字
给定一个包含 n + 1 个整数的数组 nums,其中每个整数都在范围 [1, n](包含)内。nums 中只有一个数字重复,返回这个重复的数字。你必须在不修改数组 nums 的情况下解决这个问题,并且只能使用恒定的额外空间。原创 2023-09-20 22:16:15 · 309 阅读 · 0 评论 -
使用Pygame可视化八皇后问题
八皇后问题是一个经典的组合问题。任务是在一个8x8的棋盘上安排八个皇后,使得任意两个皇后都不会威胁到彼此。这意味着任意两个皇后不能处于同一行、同一列或者同一对角线上。在本博客文章中,我将分享使用Python中流行的Pygame模块来可视化八皇后问题的解决方案。原创 2023-09-20 22:12:44 · 182 阅读 · 0 评论 -
如何用 5 行 JavaScript 解决上楼梯问题
简单地说…想象一下有N个台阶的楼梯。如果你每次可以走1步、2步或3步,你有多少种不同的方式可以到达楼梯的顶部?有一些明显的情况。你可以一次走1步,共走N次。如果N可以被2整除,你可以一次走2步,共走N/2次。同样,如果N可以被3整除,你可以一次走3步,共走N/3次。然后就是中间的情况。🤔好消息是,使用每个人都喜欢的递归算法,有一种非常简单的方法来解决这个问题。😨。原创 2023-08-04 15:14:07 · 193 阅读 · 0 评论 -
如何学习数据结构和算法。你必须掌握的20种问题解决技巧(1)基于指针的技巧
这是我在开始编程时希望能够阅读到的文章。编程是关于解决问题的,我将深入介绍20种问题解决技巧,包括代码示例、大O分析和挑战,以便你能够掌握它们。在本文中,我概述了为下一次编程面试做准备的高级策略以及需要避免的常见错误。在这里,我将深入介绍20种必须掌握的问题解决技巧,它们对我在工作中也很有帮助,甚至给了我一个正在进行的副项目的想法。此外,最后一部分包括了一个逐步学习(而不是死记硬背)任何算法或数据结构的指南,其中包含2个示例。原创 2023-08-04 15:01:29 · 207 阅读 · 0 评论 -
【经典算法题】骑士走棋盘
骑士的走法,基本上可以使用递回来解决,但是纯綷的递回在维度大时相当没有效率,一个聪明的解法由J.C. Warnsdorff在1823年提出,简单的说,先将最难的位置走完,接下来的路就宽广了,骑士所要走的下一步,「为下一步再选择时,所能走的步数最少的一步。骑士旅游(Knight tour)在十八世纪初倍受数学家与拼图迷的注意,它什么时候被提出已不可考,骑士的走法为西洋棋的走法,骑士可以由任一个位置出发,它要如何走完[所有的位置?原创 2023-08-04 14:46:04 · 97 阅读 · 0 评论 -
【经典算法题】背包问题(Knapsack Problem)
由最后一个表格,可以得知在背包负重8公斤时,最多可以装入9050元的水果,而最后一个装入的 水果是3号,也就是草莓,装入了草莓,背包只能再放入7公斤(8-1)的水果,所以必须看背包负重7公斤时的最佳解,最后一个放入的是2号,也就 是橘子,现在背包剩下负重量5公斤(7-2),所以看负重5公斤的最佳解,最后放入的是1号,也就是苹果,此时背包负重量剩下0公斤(5-5),无法 再放入水果,所以求出最佳解为放入草莓、橘子与苹果,而总价为9050元。原创 2023-08-04 14:45:26 · 275 阅读 · 0 评论 -
递归算法学习-核心概念、优点和缺点
递归是一种算法:一个函数调用自身来解决问题。它基于将一个较大的问题分解为可以由同一个函数解决的较小的子问题的思想。这个过程持续进行,直到子问题变得足够简单,可以直接解决,不再需要递归。此时,函数将结果返回给调用栈的上一级,将其与其他子问题的解决方案结合起来得到最终结果。原创 2023-07-15 09:42:43 · 715 阅读 · 0 评论 -
学会滑动窗口技术提高解题效率
滑动窗口技术涉及在数据结构中维护一个元素的“窗口”,并通过迭代滑动窗口来高效解决特定问题。通过优化数据处理方式,我们通常可以实现比蛮力方法更好的时间复杂度。原创 2023-07-11 23:27:08 · 1751 阅读 · 0 评论 -
图搜索算法详解 - DFS、BFS、Bellman-Ford、Dijkstra
图搜索算法是一种用于遍历图的技术,图是由关系连接的节点集合。在社交网络、网页或生物网络等各个领域,图论提供了一种强大的建模复杂互连关系的方式原创 2023-07-11 10:42:24 · 3946 阅读 · 0 评论 -
C++中的STL:一些常用的STL容器和算法
STL(Standard Template Library)是C++中一个强大的库,用于处理数据结构。它提供了一系列预定义的工具,如算法、容器和迭代器,可以轻松地在程序中使用。STL的主要目标是提供一种灵活和高效的处理数据结构和算法的方式。它通过提供具有明确规则和模板的现成工具来实现这一目标。这意味着您可以在不担心性能问题的情况下,使用这些工具处理不同类型的数据。STL分为四个主要部分:算法、容器、函数和迭代器。算法是执行常见任务(如排序、搜索和操作项目集合)的函数。原创 2023-07-10 11:16:23 · 416 阅读 · 0 评论