![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
题解
qq_44709743
这个作者很懒,什么都没留下…
展开
-
LeetCode1391 :检查网络中是否存在有效路径
分析:路径选择,一定是在上下左右中选择一条,如果存在路径的话,对每一条可行的路径进行测试;如果都不可选择的话,则不存在路径。 我们先确定当前位置,查看当前位置上该往哪走,然后再往相应的方向上行进,进入下一个。因为在每个位置上,其下一步是固定不变的,我们只需在上下左右中寻找到符合其行走条件的路径即可(如果存在的话)。 bool helper(int** grid, int gridSize, int...原创 2020-05-03 00:22:57 · 234 阅读 · 0 评论 -
LeetCode1319:连通网络的操作次数
分析:线的数量就是connections的值,而连接n台计算机至少需要 n - 1条线。判断是否重复连线,只需判断两台计算机是否已经在同一个网络中。如果已经相连,则把线取下。 1.遍历整个connections 2.计算有多少个集合,以及有多少剩余的线 3.集合数量-1即为最少操作次数,与剩余的线的数量进行比较即可 int makeConnected(){ 初始化并查集 for (遍历...原创 2020-05-02 17:55:08 · 112 阅读 · 0 评论 -
LeetCode LCP 01 | 传递信息
问题描述 小朋友 A 在和 ta 的小伙伴们玩传信息游戏,游戏规则如下: 有 n 名玩家,所有玩家编号分别为 0 ~ n-1,其中小朋友 A 的编号为 0 每个玩家都有固定的若干个可传信息的其他玩家(也可能没有)。传信息的关系是单向的(比如 A 可以向 B 传信息,但 B 不能向 A 传信息)。 每轮信息必须需要传递给另一个人,且信息可重复经过同一个人 给定总玩家数 n,以及按 [玩家编号,对应可...原创 2020-04-19 18:15:57 · 242 阅读 · 0 评论 -
LeetCode.74 | 搜索二维矩阵
问题:在有序的二维数组中寻找目标值 类型:数组搜索问题 分析:有序数组查值,最快的是二分搜索。 1.可以使用二分搜索寻值,但是数组为二维数组,找中间值mid的索引不方便。解决方案就是,先算出mid,将其转换为对应的二维索引,可得matrix[mid/col][mid%col],该位置上的值即为中间值。 时间复杂度:O(log(mn)),m行数,n为列数 空间复杂度:O(1) 2.第二种二分查找则...原创 2020-04-18 16:49:19 · 131 阅读 · 0 评论 -
LeetCode:1011 | 在D天内送达包裹的能力
没啥好说的,船的载重量一定在max(weights)到sum(weights)之间,且是有序的,二分查找直接上。只不过要注意的是,目标值应该为天数,所以在选定一个mid后,下一步要计算在mid时所需耗费的天数。然后与天数进行比较。 技巧:计算天数,不仅可以加,也可以减,放满一只船后,天数要减一。把货物放进船里,不仅可以加,也可以减,即放进一个货物后,船的载重量减少。 操作步骤: 在weights...原创 2020-04-17 16:33:11 · 154 阅读 · 0 评论 -
合并K个链表
思路:借鉴《算法4》上的自底向上的归并排序 1.从1开始,两两合并,然后四四合并,八八合并,直到链表数量为一 时间复杂度:O(Nlogk) 空间复杂度:O(1) #define less(X,Y) ((X)<(Y)?(X):(Y)) void merge(struct ListNode** lists,int start,int mid,int end){ //判断最后是否只剩一个链表,...原创 2020-04-17 16:09:05 · 86 阅读 · 0 评论 -
leetCode445:两数相加II
1.算术从低位到高位,所以需要从后往前算,但是链表只能从前往后遍历。因此使用后进先出的栈,先将链表节点入栈,最后在同时出栈。 时间复杂度:O(n) 空间复杂度:O(n+m)栈空间加上新链表的空间 2.也可以先对两个链表进行反转,再从头节点开始进行计算。 时间复杂度:O(n) 空间复杂度:O(n)n为新链表的空间 /** * Definition for singly-linked list. ...原创 2020-04-12 18:36:27 · 68 阅读 · 0 评论