
题解
qq_44709743
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode1391 :检查网络中是否存在有效路径
分析:路径选择,一定是在上下左右中选择一条,如果存在路径的话,对每一条可行的路径进行测试;如果都不可选择的话,则不存在路径。我们先确定当前位置,查看当前位置上该往哪走,然后再往相应的方向上行进,进入下一个。因为在每个位置上,其下一步是固定不变的,我们只需在上下左右中寻找到符合其行走条件的路径即可(如果存在的话)。bool helper(int** grid, int gridSize, int...原创 2020-05-03 00:22:57 · 313 阅读 · 0 评论 -
LeetCode1319:连通网络的操作次数
分析:线的数量就是connections的值,而连接n台计算机至少需要 n - 1条线。判断是否重复连线,只需判断两台计算机是否已经在同一个网络中。如果已经相连,则把线取下。1.遍历整个connections2.计算有多少个集合,以及有多少剩余的线3.集合数量-1即为最少操作次数,与剩余的线的数量进行比较即可int makeConnected(){ 初始化并查集 for (遍历...原创 2020-05-02 17:55:08 · 180 阅读 · 0 评论 -
LeetCode LCP 01 | 传递信息
问题描述小朋友 A 在和 ta 的小伙伴们玩传信息游戏,游戏规则如下:有 n 名玩家,所有玩家编号分别为 0 ~ n-1,其中小朋友 A 的编号为 0每个玩家都有固定的若干个可传信息的其他玩家(也可能没有)。传信息的关系是单向的(比如 A 可以向 B 传信息,但 B 不能向 A 传信息)。每轮信息必须需要传递给另一个人,且信息可重复经过同一个人给定总玩家数 n,以及按 [玩家编号,对应可...原创 2020-04-19 18:15:57 · 310 阅读 · 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 · 180 阅读 · 0 评论 -
LeetCode:1011 | 在D天内送达包裹的能力
没啥好说的,船的载重量一定在max(weights)到sum(weights)之间,且是有序的,二分查找直接上。只不过要注意的是,目标值应该为天数,所以在选定一个mid后,下一步要计算在mid时所需耗费的天数。然后与天数进行比较。技巧:计算天数,不仅可以加,也可以减,放满一只船后,天数要减一。把货物放进船里,不仅可以加,也可以减,即放进一个货物后,船的载重量减少。操作步骤:在weights...原创 2020-04-17 16:33:11 · 242 阅读 · 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 · 150 阅读 · 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 · 127 阅读 · 0 评论