摘要:
直接找入度为$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)

浙公网安备 33010602011771号