java数据结构题目
用java语言解决的一些题目
Name:PLC
总有人间一两风,填我十万八千梦
展开
-
83. 删除排序链表中的重复元素
运用递归求解可能会感到有点抽象,但你只要认真的多看几遍,在写几遍可能就不会那么抽象了,此解法比较好理解,且比较简单,只需熟练掌握双指针的基本用法就可以解决。删除所有重复的元素,使每个元素只出现一次。给定一个已排序的链表的头 ,在理解上可能会有点小难。原创 2023-06-14 10:00:44 · 113 阅读 · 0 评论 -
295. 数据流的中位数
这道题只要掌握了大顶堆和小顶堆的基本用法,就可以会个大概了,后面只要注意如何去添加数据,和如何取出数据中的元素就可以解决这道题目了。// 返回 1.5 ((1 + 2) / 2)是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。返回到目前为止所有元素的中位数。以内的答案将被接受。原创 2023-06-21 00:15:12 · 46 阅读 · 0 评论 -
200. 岛屿数量
写完这道比较简单的dfs我感觉这种题目需要有这些思想,首先要学会如何去找到本题的递归结束条件,其次是如何避免dfs的循环调用,最后就是如何去理解这个递归的结构,以及它的写法。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。(水)组成的的二维网格,请你计算网格中岛屿的数量。此外,你可以假设该网格的四条边均被水包围。原创 2023-06-19 08:02:45 · 35 阅读 · 0 评论 -
14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串。输入不存在公共前缀。原创 2023-06-21 12:12:07 · 69 阅读 · 0 评论 -
(力扣)206. 反转链表
请你反转链表,并返回反转后的链表。原创 2023-06-12 21:21:43 · 55 阅读 · 0 评论 -
20. 有效的括号
当第一个字符为右括号的时候,栈内是未添加元素的。所以要加上判断栈是否为空这个条件。,判断字符串是否有效。原创 2023-06-17 20:14:49 · 36 阅读 · 0 评论 -
21. 合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。这种方法比较好理解,你需要跟着我的思路画草图应该就明白了。输入:l1 = [1,2,4], l2 = [1,3,4]感觉刚开始学习递归有点抽象,但是用多了就感觉还不错。两个链表的节点数目范围是 [0, 50]输入:l1 = [], l2 = [0]输入:l1 = [], l2 = []l1 和 l2 均按 非递减顺序 排列。输出:[1,1,2,3,4,4]原创 2023-06-14 17:11:52 · 34 阅读 · 0 评论 -
215. 数组中的第K个最大元素
本题只要掌握了数据结构中的堆就可以解决该问题了。请注意,你需要找的是数组排序后的第。你必须设计并实现时间复杂度为。个最大的元素,而不是第。原创 2023-06-20 20:03:00 · 42 阅读 · 0 评论 -
面试题 16.19. 水域大小
该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小,返回值需要从小到大排序。该题目需要注意的一点是,它斜着方向也能相连接构成水域。你有一个用于表示一片土地的整数矩阵。原创 2023-06-22 11:55:38 · 109 阅读 · 0 评论 -
23. 合并 K 个升序链表
本题采用分而治之的方法,先把大的分成小的在进行合并返回,因为我用的都是递归的方法写的,所以可能会比较的抽象,希望大家能理解。请你将所有链表合并到一个升序链表中,返回合并后的链表。给你一个链表数组,每个链表都已经按升序排列。将它们合并到一个有序链表中得到。原创 2023-06-15 00:09:27 · 133 阅读 · 0 评论