网易首页 > 网易号 > 正文 申请入驻

2026-07-28:统计每个顶点的度。用go语言,给你一个 n x n 的二维整数数组,它代表一个无向图的邻接矩阵,包含 n 个编号从 0 到 n-1 的顶

0
分享至

2026-07-28:统计每个顶点的度。用go语言,给你一个 n x n 的二维整数数组,它代表一个无向图的邻接矩阵,包含 n 个编号从 0 到 n-1 的顶点。

矩阵中的值表示两个顶点之间是否有边:1 表示相连,0 表示不相连。一个顶点的度是指和它相连的边的总数。

请你计算并返回一个长度为 n 的数组,其中第 i 个位置存放顶点 i 的度数。

1 <= n == matrix.length == matrix[i].length <= 100。

matrix[i][i] == 0。

matrix[i][j] 仅为 0 或 1。

matrix[i][j] == matrix[j][i]。


在这里插入图片描述

输入: matrix = [[0,1,1],[1,0,1],[1,1,0]]。

输出: [2,2,2]。

解释:

顶点 0 与顶点 1 和 2 相连,因此其度为 2。

顶点 1 与顶点 0 和 2 相连,因此其度为 2。

顶点 2 与顶点 0 和 1 相连,因此其度为 2。

因此,答案为 [2, 2, 2]。

题目来自力扣3898。

第一步:理解输入结构

输入是一个n x n的二维整数数组matrix,代表一个无向图的邻接矩阵。
题目保证了以下几点:

  • • 矩阵是方阵,即len(matrix)等于len(matrix[i])。

  • • 对角线元素matrix[i][i]都为 0,表示没有自环。

  • • 矩阵是对称的,即matrix[i][j] == matrix[j][i],满足无向图的性质。

  • • 每个元素只能是 0 或 1,1 表示顶点 i 和 j 之间有一条边,0 表示没有边。

第二步:确定任务目标

我们要返回一个长度为n的数组ans,其中ans[i]是顶点i的度数。
度数的定义是:与该顶点直接相连的边的条数。
因为是无向图,一条边连接两个顶点,在度数统计中会被两个端点各自计数一次。

第三步:初始化结果数组

函数findDegrees接收矩阵后,首先用make([]int, len(matrix))创建一个与顶点数量相同长度的整数切片ans,此时所有元素默认值为 0。
这个切片将用来累加每个顶点的边数。

第四步:按行遍历,累加度数

代码的外层循环使用for i, row := range matrix遍历矩阵的每一行:

  • • 变量i是当前顶点编号,取值从 0 到 n-1。

  • • 变量row是第i行的整行数据,它也是一个切片,长度等于 n。

对于每一行row,内层循环用for _, x := range row遍历该行的每一个元素x:

  • • 由于矩阵只包含 0 和 1,x的值要么是 0(无边),要么是 1(有边)。

  • • 直接将x加到ans[i]上:ans[i] += x。

这样,对于顶点i,会把它所在的整行(即顶点 i 与其他所有顶点 j 的连接情况)上的 1 全部累加。
因为矩阵是对称的,这一行有多少个 1,就代表顶点 i 与多少个其他顶点相连,也就是顶点 i 的度数。

第五步:返回结果

当外层循环结束,所有顶点的度数都已累加完毕,函数直接返回填充好的ans切片。

第六步:主函数调用与输出

在main函数中,定义了一个 3x3 的示例矩阵,对应一个三角形无向图(每个顶点都与另外两个相连),然后调用findDegrees得到结果[2, 2, 2],最后打印出来。

复杂度分析

时间复杂度:

  • • 外层循环执行 n 次,内层循环对每行同样执行 n 次,总共访问矩阵的每一个元素恰好一次。

  • • 对每个元素只做一次累加操作,常数时间。

  • • 所以总的时间复杂度是 O(n²)。

额外空间复杂度:

  • • 除了输入矩阵本身占用的空间(不计入额外空间),算法只创建了一个长度为 n 的结果数组ans。

  • • 没有使用其他与 n 相关的辅助数据结构。

  • • 因此,总的额外空间复杂度是 O(n)。

总结:
该算法通过遍历邻接矩阵的每一行,累加每行的值来得到每个顶点的度数,过程简单直接,时间复杂度 O(n²),额外空间复杂度 O(n)。

Go完整代码如下:

package main

import (
"fmt"
)

func findDegrees(matrix [][]int) []int {
ans := make([]int, len(matrix))
for i, row := range matrix {
for _, x := range row {
ans[i] += x
}
}
return ans
}

func main() {
matrix := [][]int{{0, 1, 1}, {1, 0, 1}, {1, 1, 0}}
result := findDegrees(matrix)
fmt.Println(result)
}

Python完整代码如下:

# -*-coding:utf-8-*-

from typing import List

def find_degrees(matrix: List[List[int]]) -> List[int]:
ans = [0] * len(matrix)
for i, row in enumerate(matrix):
ans[i] = sum(row)
return ans

if __name__ == "__main__":
matrix = [[0, 1, 1], [1, 0, 1], [1, 1, 0]]
result = find_degrees(matrix)
print(result)

C++完整代码如下:

  




std::vector findDegrees(const std::vector int >>& matrix) {
std::vector< int > ans(matrix.size(), 0 );
for (size_t i = 0 ; i < matrix.size(); ++i) {
for ( int x : matrix[i]) {
ans[i] += x;
}
}
return ans;
}

int main() {
std::vector int >> matrix = {
{ 0 , 1 , 1 },
{ 1 , 0 , 1 },
{ 1 , 1 , 0 }
};
std::vector< int > result = findDegrees(matrix);

std::cout << "[" ;
for (size_t i = 0 ; i < result.size(); ++i) {
std::cout << result[i];
if (i != result.size() - 1 ) std::cout << ", " ;
}
std::cout << "]" << std::endl;

return 0 ;
}

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
3大新援已有两个水货!曼联高层承认夏窗引援水准欠佳

3大新援已有两个水货!曼联高层承认夏窗引援水准欠佳

球事百科吖
2026-10-13 04:22:45
“陈皮骗局”爆火:刺痛了多少中国人...

“陈皮骗局”爆火:刺痛了多少中国人...

温伯陵的烟火人间
2026-10-12 21:38:16
欧美港口:拆掉中国设备!工人拆完,领导:我让你拆的是,Logo

欧美港口:拆掉中国设备!工人拆完,领导:我让你拆的是,Logo

星落山间
2026-09-07 00:46:19
6-4到4-2!海港火力全开,蒋光太缺阵后防吃紧,大田反击暗藏杀机

6-4到4-2!海港火力全开,蒋光太缺阵后防吃紧,大田反击暗藏杀机

汪星人哟
2026-10-13 08:07:48
开播一天拿下热度冠军!观众盛赞:首集就欲罢不能

开播一天拿下热度冠军!观众盛赞:首集就欲罢不能

小椰的奶奶
2026-10-13 02:16:05
单年暴跌60万辆后绝地反击,广州这次押上全部家底

单年暴跌60万辆后绝地反击,广州这次押上全部家底

音乐时光的娱乐
2026-10-12 16:21:11
出战4分钟0分5犯2失误!辽篮潜力中锋被打回原形:这状态咋接班韩德君

出战4分钟0分5犯2失误!辽篮潜力中锋被打回原形:这状态咋接班韩德君

篮球快餐车
2026-10-13 05:49:10
2026年值得考虑的7款富士相机

2026年值得考虑的7款富士相机

固件更新中
2026-10-12 06:56:09
许志安演唱会落幕,郑秀文后台深情相拥:人生没有放弃自己的理由

许志安演唱会落幕,郑秀文后台深情相拥:人生没有放弃自己的理由

吃青菜长高
2026-10-12 13:04:35
我才65岁,儿子就要送我去养老院,我无奈同意,临行前去银行注销了银行卡,入住7天后,儿子跑来找我:妈,我这个月的房贷怎么逾期了?

我才65岁,儿子就要送我去养老院,我无奈同意,临行前去银行注销了银行卡,入住7天后,儿子跑来找我:妈,我这个月的房贷怎么逾期了?

蝉吟槐蕊
2026-10-12 23:23:58
吃饭决定寿命?医生发现:活过85岁的老人,吃饭一般都有4特点

吃饭决定寿命?医生发现:活过85岁的老人,吃饭一般都有4特点

医学原创故事会
2026-10-11 23:26:04
广东3消息!杜锋重返宏远,胡明轩官宣担任队长,三外援首秀时间确定

广东3消息!杜锋重返宏远,胡明轩官宣担任队长,三外援首秀时间确定

多特体育说
2026-10-12 20:37:40
拜仁豪掷天价挖角!巴萨核心坐冷板凳!弗里克或逼走诺坎普大将

拜仁豪掷天价挖角!巴萨核心坐冷板凳!弗里克或逼走诺坎普大将

奶盖熊本熊
2026-10-13 07:43:00
花800块跑了900亿Token:Kimi做设计、GLM干活、DeepSeek审计、豆包管图片,这套国产AI组合到底值不值

花800块跑了900亿Token:Kimi做设计、GLM干活、DeepSeek审计、豆包管图片,这套国产AI组合到底值不值

阿鑫讲ai
2026-10-12 23:46:16
蔡国庆每月给弟弟蔡军发2万工资,发了20年,一共480万,条件就一个:在家全职照顾得阿尔茨海默症的母亲

蔡国庆每月给弟弟蔡军发2万工资,发了20年,一共480万,条件就一个:在家全职照顾得阿尔茨海默症的母亲

LULU生活家
2026-09-02 19:51:47
智能电插座遭黑客攻击致多地鱼友“全缸覆灭”?厂商:部分产品被攻击,已报警

智能电插座遭黑客攻击致多地鱼友“全缸覆灭”?厂商:部分产品被攻击,已报警

封面新闻
2026-10-12 10:05:14
曾经“红极一时”,如今“跌下神坛”的3家服装品牌,你买过吗?

曾经“红极一时”,如今“跌下神坛”的3家服装品牌,你买过吗?

李健政观察
2026-09-04 00:22:56
灵活就业想靠单位缴社保,就算不要工资,也不是这么简单

灵活就业想靠单位缴社保,就算不要工资,也不是这么简单

娱乐圈见解说
2026-10-13 03:13:35
放进冰箱变“毒药”,这6种食物千万不要放冰箱冷藏,尤其是第6种

放进冰箱变“毒药”,这6种食物千万不要放冰箱冷藏,尤其是第6种

神牛
2026-10-11 16:13:59
海蒂·克鲁姆泳池边半裸晒照!只穿丁字裤,配文洛杉矶很热

海蒂·克鲁姆泳池边半裸晒照!只穿丁字裤,配文洛杉矶很热

草莓解说体育
2026-10-12 03:50:51
2026-10-13 09:35:00
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1511文章数 83关注度
往期回顾 全部

科技要闻

尊界:10月底确认制动踏板支架升级方案

头条要闻

牛弹琴:美国突然转向俄罗斯一边 欧洲看得目瞪口呆

头条要闻

牛弹琴:美国突然转向俄罗斯一边 欧洲看得目瞪口呆

体育要闻

一周吃6顿披萨的胖子,也能单防姆巴佩?

娱乐要闻

张艺谋身体状况曝光 陈婷不再顾及体面

财经要闻

险资“追涨杀跌”致科技股持续回调?

汽车要闻

小鹏G9L巴黎车展全球上市 法国市场售价74990欧元起

态度原创

数码
艺术
游戏
旅游
教育

数码要闻

首发1299元 米家洗衣机双筒1kg发布:80℃高温煮洗、99.99%除菌

艺术要闻

台北故宫一件魏晋真迹,被称作晋代笔法的“活化石”,水平不输《兰亭序》!

《最终幻想7:启示》NS2版画质力争超越《重生》

旅游要闻

“富华”归来:老水晶灯依旧在 岭南水景“后花园”撬动岐江文旅走廊

教育要闻

4个正在崛起的专业,市场需求旺盛;另有4个难度拉满,挂科率高的专业,都是什么情况?

无障碍浏览 进入关怀版