【Leetcode】542.01矩阵 542.01矩阵题目给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入: 0 0 0 0 1 0 0 0 0 输出: 0 0 0 0 1 0 0 0 0 示例 2: 输入: 0 0 0 0 1 0 1 1 1 输出: 0 0 0 0 1 0 1 2 1 方法(BFS)对于二叉树的BFS,都是单源BFS。而对于图的BFS, 2021-02-17 算法 深度(广度)优先搜索
【Leetcode】785.判断二分图 785 判断二分图题目给定一个无向图graph,当这个图为二分图时返回true。 如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。 graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: gra 2021-02-17 算法 深度(广度)优先搜索
【Leetcode】134.加油站 134.加油站题目在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。 说明: 如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数 2021-02-17 算法 贪心算法
【Leetcode】141.环形链表 141 环形链表题目:给定一个链表。判断链表中是否有环 思路:双指针思路:一个快指针,一个慢指针。快指针一次走两步,慢指针一次走一步。两个指针若相遇,则有环。 哈希表思路:我们可以通过检查一个结点此前是否被访问过来判断链表是否为环形链表。常用的方法是使用哈希表。 算法:我们遍历所有结点并在哈希表中存储每个结点的引用(或内存地址)。如果当前结点为空结点 null(即已检测到链表尾部的下一个结点),那 2021-02-17 算法 链表
【Leetcode】142.环形链表II 142 环形链表 II题目:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。 示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node i 2021-02-17 算法 链表
【Leetcode】148.排序链表 148.排序链表题目在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 输入: 4->2->1->3 输出: 1->2->3->4 示例 2: 输入: -1->5->3->4->0 输出: -1->0->3->4->5 方法(归并排序思路) 首先用快慢指针法将链表从中间断开 2021-02-17 算法 链表
【Leetcode】143.重排链表 143 重排链表题目:给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, 重 2021-02-17 算法 链表
【Leetcode】147.对链表进行插入排序 147.对链表进行插入排序题目对链表进行插入排序。 示例 1: 输入: 4->2->1->3 输出: 1->2->3->4 示例 2: 输入: -1->5->3->4->0 输出: -1->0->3->4->5 方法一新建一个列表,将链表中的元素全部加入到这个链表中。然后对这个列表进行排序。最后将列表中排序好的 2021-02-17 算法 链表
【Leetcode】2.两数相加 2.两数相加题目给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储 一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 2021-02-17 算法 链表
【Leetcode】1579.保证图可完全遍历 1579.保证图可完全遍历题目Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边: 类型 1:只能由 Alice 遍历。 类型 2:只能由 Bob 遍历。 类型 3:Alice 和 Bob 都可以遍历(共享边)。 给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的共享边。 2021-02-17 算法 贪心算法