数据结构与算法学习之路JAVA
文章平均质量分 68
本专栏主要是从0到入门数据结构与算法,每篇专题都有例题,还会不定期的更新练习题代刷+详细的代码讲解
Auc23
致力于制作高质量的免费文章
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构与算法-二分查找法
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。如果我们希望返回最左侧元素,如对于数组 [1, 2, 3, 4, 4, 5, 6, 7],查找元素4,结果是索引3。请你找出给定目标值在数组中的开始位置和结束位置。给你一个按照非递减顺序排列的整数数组。,如果目标值存在返回下标,否则返回。个元素有序的(升序)整型数组。你必须设计并实现时间复杂度为。请必须使用时间复杂度为。如果数组中不存在目标值。原创 2025-02-06 20:17:10 · 534 阅读 · 0 评论
-
数据结构与算法-数组
注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。最终,合并后数组不应由函数返回,而是存储在数组。需要合并 [1,2,3] 和 [2,5,6]。需要合并的数组是 [] 和 [1]。个元素表示应合并的元素,后。需要合并 [1] 和 []。中,使合并后的数组同样按。合并结果是 [1]。合并结果是 [1]。原创 2025-02-06 21:52:35 · 346 阅读 · 0 评论 -
数据结构与算法-递归
F(n) = F(n - 1) + F(n - 2),其中 n > 1。开始,后面的每一项数字都是前面两项数字的和。在「杨辉三角」中,每个数是它左上方和右上方的数的和。生成「杨辉三角」的前 numRows。给定一个非负整数 numRows。表示)形成的序列称为。原创 2025-02-08 23:33:11 · 530 阅读 · 0 评论 -
数据结构与算法-链表
新链表是通过拼接给定的两个链表的所有节点组成的。该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。请你将所有链表合并到一个升序链表中,返回合并后的链表。来表示链表尾连接到链表中的位置(索引从 0 开始)。给你一个链表数组,每个链表都已经按升序排列。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。,请你反转链表,并返回反转后的链表。,请你找出并返回链表的中间结点。原创 2025-02-08 23:33:35 · 1089 阅读 · 0 评论 -
数据结构与算法-队列
循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。(即逐层地,从左到右访问所有节点)。原创 2025-02-13 18:31:41 · 470 阅读 · 0 评论 -
数据结构与算法-栈
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(myStack.empty();// 返回 False。返回一个表示表达式值的整数。,判断字符串是否有效。原创 2025-02-13 18:31:59 · 746 阅读 · 0 评论 -
数据结构与算法-优先队列
请你将所有链表合并到一个升序链表中,返回合并后的链表。给你一个链表数组,每个链表都已经按升序排列。将它们合并到一个有序链表中得到。原创 2025-02-14 10:07:35 · 283 阅读 · 0 评论 -
数据结构与算法-双端队列
/ 设置容量大小为3。// 已经满了,返回 false。// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 true。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。原创 2025-02-14 10:08:08 · 474 阅读 · 0 评论 -
数据结构与算法-阻塞队列
【代码】数据结构与算法-阻塞队列。原创 2025-02-18 21:50:11 · 300 阅读 · 0 评论 -
数据结构与算法-堆
/ 返回 1.5 ((1 + 2) / 2)是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。返回到目前为止所有元素的中位数。请注意,你需要找的是数组排序后的第。你必须设计并实现时间复杂度为。个最大的元素,而不是第。以内的答案将被接受。原创 2025-02-15 17:56:43 · 565 阅读 · 0 评论 -
数据结构与算法-二叉树
给你二叉树的根节点root,返回它节点值的遍历。原创 2025-02-20 21:46:19 · 1034 阅读 · 0 评论 -
数据结构与算法-AVL树
【代码】数据结构与算法-AVL树。原创 2025-02-20 21:45:51 · 159 阅读 · 0 评论 -
数据结构与算法-哈希表
"ball" 出现了两次(没有其他单词出现这么多次),因此它是段落中出现频率最高的非禁用词。,除了某个元素只出现一次以外,其余每个元素均出现两次。并且尽管 "hit" 出现的次数更多,但它不能作为答案,因为它是禁用词。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。是由重新排列源单词的所有字母得到的一个新单词。,返回出现频率最高的非禁用词。"hit" 出现了 3 次,但它是禁用词。它的第一个不重复的字符,并返回它的索引。请注意,段落中的单词不区分大小写,整数,并返回它们的数组下标。原创 2025-02-15 17:57:00 · 975 阅读 · 0 评论 -
数据结构与算法-排序算法
每轮冒泡不断地比较的两个元素,如果它们是逆序的,则交换它们的位置下一轮冒泡,可以调整未排序的右边界,减少不必要比较每一轮选择,找出最大(最小)的元素,并把它交换到合适的位置。原创 2025-02-18 21:50:32 · 1392 阅读 · 0 评论 -
数据结构与算法-贪心算法
给你一个整数数组coins表示不同面额的硬币,另给一个整数amount表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回0。假设每一种面额的硬币有无限个。题目数据保证结果符合 32 位带符号整数。4有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+10只用面额 2 的硬币不能凑成总金额 3。1。原创 2025-03-02 14:35:37 · 422 阅读 · 0 评论 -
数据结构算法-动态规划
一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?283从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右3. 向下 -> 向右 -> 向下286。原创 2025-03-02 14:35:16 · 433 阅读 · 0 评论 -
数据结构与算法-图
【代码】数据结构与算法-图。原创 2025-02-20 21:45:33 · 318 阅读 · 0 评论
分享