摘要: 直接找入度为$n-1$,出度为$0$的点就行了,时间复杂度是$O(n)$。 int in[1007],out[1007]; class Solution { public: int findJudge(int n, vector<vector<int>>& trust) { int t=trust. 阅读全文
posted @ 2021-06-19 22:31 wegret 阅读(57) 评论(0) 推荐(0)
摘要: 脑筋急转弯。其实就是把当前节点伪装成下一个节点,取代next。 class Solution { public: void deleteNode(ListNode* node) { node->val=(node->next)->val; node->next=(node->next)->next; 阅读全文
posted @ 2021-06-19 18:09 wegret 阅读(30) 评论(0) 推荐(0)
摘要: 已经连通的点可以视为集合,用并查集记录集合,搜一遍得到集合个数。设点数为$n$,边数为$s$,集合个数为$num$。那么有两种情况: 1)$s<n-1$,不能全部连通。 2)$s>=n-1$,最少操作数是$num-1$。(随便取冗边,反正能把集合都连起来就行。因为$s>=n-1$,所以是肯定能取到冗 阅读全文
posted @ 2021-06-19 16:55 wegret 阅读(75) 评论(0) 推荐(0)
摘要: “任意两点之间 有且仅有一条简单路径时,返回将所有点连接的最小总费用”,即求MST(最小生成树)。 发现数据规模不超过1000,所以可以考虑到$O(n^2)$的算法。 $O(n^2)$算出任意两点的距离。然后用prim算最小生成树,同样$O(n^2)$。(这张图是稠密图,点数$n$远小于边数$n^2 阅读全文
posted @ 2021-06-19 12:07 wegret 阅读(69) 评论(0) 推荐(0)