ARTS Week 43

Algorithm

本周的算法题为 1822. 数组元素积的符号

已知函数 signFunc(x) 将会根据 x 的正负返回特定值:

  • 如果 x 是正数,返回 1
  • 如果 x 是负数,返回 -1
  • 如果 x 是等于 0 ,返回 0

给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。

返回 signFunc(product)

示例 1

输入:nums = [-1,-2,-3,-4,3,2,1]
输出:1
解释:数组中所有值的乘积是 144 ,且 signFunc(144) = 1

实现代码如下:

let arraySign = function (nums{
    let product = 1
    nums.forEach(n => {
        if (n === 0) {
            product = 0
            return
        }
        product = product * n

    });
    return signFunc(product)

    function signFunc(p{
        if (p > 0) {
            return 1
        } else if (p < 0) {
            return -1
        } else {
            return 0
        }
    }
}

解题思路:

题目很简单。

Review

Nature can reduce anxiety and boost mental health - Breaking News English Lesson

我们都知道,置身于大自然中对我们有好处。新的研究表明,在自然界中仅 10 分钟就有助于我们的心理健康。该研究还表示,在自然环境中与他人共度时光有助于建立人际关系。即使在城市公园和园艺中也可以有所作为。香港城市大学的一项研究发现,大自然增加了我们将他人视为“完全的人”的方式。研究人员表示,这使我们更多地帮助和合作他人。我们变得更善于交际。这让我们对自己感觉更好。我们感觉更积极,因此我们的心理健康得到了改善。帮助他人也可以减轻我们的压力和焦虑。

心理健康是一个在世界范围内日益增长的问题。越来越多的人患有焦虑、抑郁和其他心理障碍。美国全国精神疾病联盟报告称,五分之一的美国人有心理健康问题。该研究包含关于大自然如何帮助解决这些问题的好建议。它说,在树上或田野里度过的时间与更好的睡眠和注意力的提高有关。日本千叶大学的一项研究发现,即使是鲜花也对心理健康有积极影响。研究人员发现,办公桌上放着一瓶玫瑰的员工在短短四分钟后就变得更加平静,压力也减轻了。

Tip

在维护部门内部的API库时,出现执行命令报错,如下所示:

alt
node:internal/errors:477
    ErrorCaptureStackTrace(err);
    ^
Error: Command failed with ENOENT: npm run clean
spawn npm run clean ENOENT
    at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
    at onErrorNT (node:internal/child_process:478:16)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) {
  errno-2,
  code'ENOENT',
  syscall'spawn npm run clean',
  path'npm run clean',
  spawnargs: [],
  originalMessage'spawn npm run clean ENOENT',
  shortMessage'Command failed with ENOENT: npm run clean\nspawn npm run clean ENOENT',
  command'npm run clean',
  exitCodeundefined,
  signalundefined,
  signalDescriptionundefined,
  stdout'',
  stderr'',
  failedtrue,
  timedOutfalse,
  isCanceledfalse,
  killedfalse
}

从报错信息可知,代码在执行到npm run clean命令时报错了,提示找不到这个命令,但是我复制命令在终端运行是成功的,在windows10系统是没问题的,但我在mac系统上运行就报错了,执行代码如下所示:

await execa('npm run clean')

初步猜测,可能execa用法在mac环境中不生效。将其注释,没有提示报错,所以,接着就要研究如何在mac环境中使用execa了。只需将

execa('npm run clean'

改写为

execa('npm', ['run''clean'], { shelltrue })

即可,这时,我们就会想知道这两种用法有什么区别呢?

execa是一个用于执行shell命令的Node.js模块,它可以将命令作为参数传递给它,并返回一个Promise,以便在命令执行完成之后处理。根据报错提示没有找到npm命令,很有可能是execa模块无法正确识别到环境变量。

所以将npm run clean拆分为npmrun clean两个参数,并将 shell 选项设置为true,以便在子进程中运行命令的时候使用默认的shell,这样可以正确找到npm命令并且识别环境变量,找到npm命令。

Share

“上兵伐谋,其次伐交,其次伐兵,其下攻城。”

本文由 mdnice 多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AR7_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值