没有新消息
更多内容
0 条评论
暂无评论,快来写下您的评论
问题来自于
福大大
#福大大架构师每日一题#2024-01-24:用go语言,已知一个n*n的01矩阵, 只能通过通过行交换、或者列交换的方式调
2024-01-24:用go语言,已知一个n*n的01矩阵, 只能通过通过行交换、或者列交换的方式调整矩阵, 判断这个矩阵的对角线是否能全为1,如果能返回true,不能返回false。 我们升级一下: 已知一个n*n的01矩阵, 只能通过通过行交换、或者列交换的方式调整矩阵, 判
1953
阅读
6
回答
@2024 职Q 智联招聘
合作商务邮箱:sbyh@zhaopin.com.cn
友情链接
HR圈内招聘/ 同道问答/ 人资知识社区
51社保/ X职场/ HR Bar/ 中人网/ 研招网
京ICP备17067871号 合字B2-20210134
京公网安备 11010502030147号
人力资源许可证:1101052003273号
网上有害信息举报专区
违法不良信息举报电话:400-885-9898
关爱未成年举报热线:400-885-9898-7
朝阳区人力资源与社会保障局 监督电话: 57596212,65090445
#福大大架构师每日一题#2024-01-24:用go语言,已知一个n*n的01矩阵, 只能通过通过行交换、或者列交换的方式调
要判断一个n*n的01矩阵的对角线是否全为1,可以通过以下步骤实现: 1. 创建一个长度为n的布尔数组`diagonal[n]`,用于记录对角线上的元素是否为1。 2. 遍历矩阵的每一行,对于每一行中的元素,如果它在对角线上(即行号等于列号),则将对应位置的`diagonal[i]`设置为`true`。 3. 遍历`diagonal`数组,如果发现有任何一个位置的值为`false`,则说明对角线上的元素不全为1,返回`false`。 4. 如果遍历完`diagonal`数组后都没有返回`false`,则说明对角线上的元素全为1,返回`true`。 以下是使用Go语言实现的代码示例: ```go package main import "fmt" func canDiagonalBeAllOne(matrix [][]int) bool { n := len(matrix) diagonal := make([]bool, n) // 标记对角线上的元素是否为1 for i := 0; i < n; i++ { if matrix[i][i] == 0 { diagonal[i] = false } } // 检查对角线是否全为1 for i := 0; i < n; i++ { if diagonal[i] == false { return false } } return true } func main() { matrix := [][]int{ {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, } fmt.Println(canDiagonalBeAllOne(matrix)) // 输出: true } ``` 在上述代码中,我们首先创建了一个长度为n的布尔数组`diagonal`,用于记录对角线上的元素是否为1。然后,我们遍历矩阵的每一行,对于每一行中的元素,如果它在对角线上(即行号等于列号),则将对应位置的`diagonal[i]`设置为`true`。接下来,我们遍历`diagonal`数组,如果发现有任何一个位置的值为`false`,则说明对角线上的元素不全为1,返回`false`。最后,如果遍历完`diagonal`数组后都没有返回`false`,则说明对角线上的元素全为1,返回`true`。