如何使用高阶函数求对角线的总和?

2023-11-27

考虑以下二维数组:

let array = [
                [11, 2, 4],
                [4, 5, 6],
                [10, 8, -12]
            ]

我想要得到的是对角线的总和:

  • As firstDiagnal: 11 + 5 + (-12) = 4
  • As secondDiagnal: 4 + 5 + 10 = 19

我可以使用标准来实现它for-in loop:

var firstDiagnal = 0
var secondDiagnal = 0

for i in 0..<array.count {
    firstDiagnal += array[i][i]
    secondDiagnal += array[i][array[i].count - 1 - i]
}

print(firstDiagnal)
print(secondDiagnal)

但是,如果我们尝试使用会怎样?高阶功能?例如map and reduce?


要获得第一个总和,您需要第 i 行的第 i 个元素:

let firstDiag = array.enumerated().map { $1[$0] }.reduce(0, +)

要获得第二个总和,您需要相同的东西,但列颠倒了:

let secondDiag = array.enumerated().map { $1.reversed()[$0] }.reduce(0, +)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用高阶函数求对角线的总和? 的相关文章

  • 从二叉堆中查找第 k 个最小元素的 O(klogk) 时间算法

    我们有一个 n 节点二叉堆 其中包含n不同的项目 根部的最小项目 为一个k lt n 发现O klogk 时间算法选择kth堆中的最小元素 O klogn 很明显 但无法找出O klogk 一 也许我们可以使用第二个堆 但不确定 好吧 你的
  • array_merge 更改键

    我得到以下数组 arr array 6 gt Somedata 7 gt Somedata1 8 gt Somedata2 问题是 当我使用array merge array Select the data arr 它确实将数组键更改为 A
  • Admob 广告无法快速显示

    您好 我正在尝试将 admob 广告添加到已使用 swift 上传到应用商店的应用程序中 我在 admob 中制作了一个应用程序并复制了 appid 和广告 id 并显示了各自的横幅广告和插页式广告 这里的问题是当我写这行时 request
  • 如何在 JavaScript 中对关联数组进行排序?

    我需要为我的一个项目通过 JS 对关联数组进行排序 我发现这个函数在 Firefox 中运行得很好 但不幸的是它在 IE8 OPERA CHROME 中不起作用 无法找到使其在其他浏览器中运行的方法 或者找到另一个适合该目的的函数 我真的很
  • 寻找公共子集的算法

    I have N number of sets Si of Numbers each of a different size Let m1 m2 mn be the sizes of respective sets mi Si and M
  • Swift 协议扩展实现另一个具有共享关联类型的协议

    考虑以下 protocol Foo typealias A func hello gt A protocol FooBar Foo func hi gt A extension FooBar func hello gt A return h
  • 在 C 中将字符追加到字符数组

    我想将一个字符附加到代表字符串的字符数组中 我正在使用结构来表示字符串 struct String char c int length int maxLength String realloc弄乱了我的数组 当我打印字符串时 它会从内存中打
  • Swift SpriteKit edgeLoopF​​romRect 问题

    下面的代码可以识别底部和顶部边缘场景和球按预期弹开 但是 那左边缘和右边缘现场的情况一直被破坏 如果施加足够的力 球会离开屏幕 然后最终返回 就好像场景的边缘超出了 iPhone 模拟器窗口的边缘 import SpriteKit clas
  • 使用递归返回嵌套列表中第二小的数字

    我必须归还第二小的使用递归的 python 列表中的数字 以及no loops 我所做的是创建一个辅助函数 它返回列表中 最小 第二小的 值的元组 然后我只取tuple 1 in my second smallest func def s
  • 在 VB.Net 中将字节数组转换为整数

    我想知道在 vb net 中将字节数组 长度 4 转换为整数的最佳方法是什么 我知道 BitConverter 但执行函数调用来执行应该可以通过复制 4 字节内存来完成的操作似乎相当浪费 同样 将单 双精度数从二进制表示形式转换为单 双精度
  • Swift,以编程方式更改 UICollectionViewCell 和 UILabel(单元格内)的宽度

    我已将单元格 UICollectionViewCell 的宽度设置为等于 UICollectionView 的宽度 并且我尝试对该单元格中包含的 UILabel 执行完全相同的操作 我认为下面的代码准确地解释了我想要实现的目标 所以我在这里
  • 使用未解析的标识符“FlurryAdInterstitial”

    我正在尝试整合Flurry Interstitial Ads使用cocoapods in Swift and Xcode 7 1 1 我正在关注开发人员雅虎网站上的此文档 https developer yahoo com flurry d
  • 查找最接近点的多边形顶点的索引

    Heading 我需要找到最接近点的多边形的索引 所以在这种情况下 输出将是 4 和 0 这样 如果添加了红点 我就知 道将顶点放置在数组中的位置 有谁知道从哪里开始 抱歉 如果标题有误导性 我不知道如何正确表达它 In this case
  • 从数组中删除空白元素

    当我从 ruby on Rails 表单中保存多个选择时 它似乎在前面添加了一个空白元素 我该如何删除它 该字段为 selected player utf8 gt authenticity token gt H8W7qPBezubyeU0a
  • Swift - 元类型 .Type 和 .self 之间有什么区别?

    元类型有什么区别 Type and self在斯威夫特 Do self and Type返回一个struct 我明白那个 self可以用来检查dynamicType 你如何使用 Type 首先也是最重要的是查看 Apple 文档type o
  • 如何实现n个元素的查找和插入操作的动态二分查找

    这个想法是使用多个数组 每个长度为 2 k 根据 n 的二进制表示来存储 n 个元素 每个数组都是排序的 不同的数组没有以任何方式排序 在上述数据结构中 SEARCH是通过对每个数组进行一系列二分查找来进行的 INSERT 是通过一系列相同
  • ReactiveCocoa 将 SignalProducers 合二为一

    我正在使用 ReactiveCocoa 并且我有几个 SignalProducers let center NSNotificationCenter defaultCenter let signalProducer1 center rac
  • UItextView 背景颜色 Linespacing 区域太

    我正在尝试在 UITextView 中复制文本突出显示 不是搜索文本突出显示 但我也被行间距的颜色所困扰 我该如何纠正这个问题 现在的情况 期望的结果 我已将以下属性添加到我的 UiTextview 的属性文本中 对于段落行间距 我使用了以
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • MVC JSON 操作返回 bool

    我的 ASP NET MVC 操作是这样写的 GET TaxStatements CalculateTax prettyId public ActionResult CalculateTax int prettyId if prettyId
  • 检测winforms中的箭头键[重复]

    这个问题在这里已经有答案了 可能的重复 上 下 左 右方向键不触发 KeyDown 事件 先看代码 using System using System Collections Generic using System ComponentMo
  • 通过 Composer 安装 Laravel 时获取建议

    从昨天开始 当我通过以下方式创建 laravel 项目时 composer create project prefer dist laravel laravel project name 我收到这些建议消息 这是正常现象还是我搞砸了什么 我
  • 如何指定实际的 x 轴值以在 R 中绘制为 x 轴刻度

    我正在 R 中创建一个绘图 但我不喜欢 R 绘制的 x 轴值 例如 x lt seq 10 200 10 y lt runif x plot x y 这将绘制一个在 X 轴上具有以下值的图表 50 100 150 200 但是 我想绘制 2
  • MySQL - IN() 中的 ORDER BY 值

    我希望对以下查询中返回的项目进行排序它们输入 IN 函数的顺序 INPUT SELECT id name FROM mytable WHERE name IN B A D E C OUTPUT id name 5 B 6 B 1 D 15
  • 如何将流程图转化为实施? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 编辑 简介 为了吸引更广泛的读者 我通过一个复杂的 有点乏味的 现实生活中的例子重新阐述了我最初的问题 原始问题如下 远 所示 Tom 刚刚被 Acme Inc 聘为初级软件工程
  • 如何使用 c# 使用 httpwebrequest 从 json api 获取数据?

    我想从中获取所有变量https api coinmarketcap com v1 ticker 在我的 C 控制台应用程序中 我怎样才能做到这一点 我首先将整个页面作为流获取 现在做什么 private static void start
  • Swift 错误:对泛型类型 Dictionary 的引用需要 <...> 中的参数

    错误Reference to generic type Dictionary requires arguments in lt gt 出现在函数的第一行 我试图让该函数返回从 api 检索到的 NSDictionary 有人知道这里会发生什
  • Java 等待线程列表

    有没有办法获取对象上的等待线程列表 等待线程数 如果您正在使用synchronized关键字 没有 但如果您正在使用java util concurrent锁 你可以 ReentrantLock有一个受保护的方法getWaitingThre
  • React Native - 将登录的 Firebase 用户重定向到 Home 组件

    我的目标是将用户重定向到Home如果用户已经登录 则组件 我可以登录用户并将其重定向到Home除非 logInUser 叫做 然而 一旦重定向到Home组件 如果我刷新模拟器 应用程序将返回到Login成分 我尝试使用来解决这个问题comp
  • 将列表中的每个元素乘以一个数字

    我想将列表中的所有元素乘以一个数字 我知道其他方法可以做到这一点 但我想知道为什么这不起作用 我得到的列表与输出完全相同 lst eval input enter a list for num in lst num num 2 print
  • 将 JPanel 置于 java 中其他对象的前面 (SWING)

    我想在应用程序处理时发出加载消息 所以我使用了JPanel over a JTree 但是当用户点击JPanel the JTree将被选择并且JPanel会去后面 隐藏之后JPanel 它再也不会出现 我不知道为什么 但它似乎永远不会走在
  • 是否可以基于 MySQL 中的列之一进行选择插入?

    以下插入是否基于 MySQL 中可能的列之一的选择 INSERT INTO student fees id name fees VALUES 1 SELECT name from students where student id 1 20
  • 如何在 AWS ElasticBeanstalk 和 Nginx 上使用 OAuth2 的 Spring Boot 应用程序上强制使用 SSL?

    我正在尝试使用参考文档强制使用 SSL https docs spring io spring boot docs current reference html howto security html howto enable https
  • 如何实现可取消的事件?

    在 System ComponentModel 中 有一个名为 CancelEventArgs 的类 其中包含可以在事件侦听器中设置的 Cancel 成员 MSDN 上的文档解释了如何使用它来取消侦听器内的事件 但如何使用它来实现我自己的可
  • 如何在 Windows 应用程序中启用常用控件

    我正在尝试在应用程序中启用通用控件 我按照中给出的步骤进行操作这篇 MSDN 文章 特别是该部分在仅使用标准扩展的应用程序中使用 ComCtl32 dll 版本 6 但我无法让它发挥作用 我做的唯一与本文不同的事情是我将清单信息添加到项目属
  • UIViewController viewDidLoad 宽度/高度不正确

    每个人都知道你不能相信 UIViewController init viewDidLoad 方法上的帧大小 这 void viewDidLoad NSLog d self view frame size width 在很多情况下会打印错误的
  • Spring Reactive 使用 ServerRequest 获取正文 JSONObject

    我是春季反应新手 我正在尝试使用邮递员从服务器获取请求信息 首先 postman使用post方法向服务器发送信息 其次 我们一直在服务器端编写相关代码并获取请求信息 在下面的代码片段中 我想知道是否可以获取ServerRequest函数的J
  • 隐藏命令行上的输入

    我知道像 Git 和其他这样的命令行界面能够隐藏用户的输入 对密码很有用 有没有办法在 Java 中以编程方式执行此操作 我正在从用户那里获取密码输入 我希望他们的输入 隐藏 在该特定行上 但不是所有行上 这是我的代码 尽管我怀疑它会有帮助
  • 如何使用高阶函数求对角线的总和?

    考虑以下二维数组 let array 11 2 4 4 5 6 10 8 12 我想要得到的是对角线的总和 As firstDiagnal 11 5 12 4 As secondDiagnal 4 5 10 19 我可以使用标准来实现它fo