Algorithm

本周的算法题为 35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

示例 1:

输入: nums = [1,3,5,6], target = 5
输出: 2

实现代码如下:

function searchInsert(nums, target) {
  let left = 0;
  let right = nums.length - 1;

  while (left <= right) {
    const mid = Math.floor((left + right) / 2);

    if (nums[mid] === target) {
      return mid;
    } else if (nums[mid] < target) {
      left = mid + 1;
    } else {
      right = mid - 1;
    }
  }
  return left; // 如果没有找到目标值,返回 left
}

解题思路:

一开始事宜for循环,然后加上三个if条件进行判断就解答出来了,但是,不符合题目要求的时间复杂度 O(log n),所以就看了一下官方解答思路,使用二分查找法解答。如果目标值存在于数组中,返回它的索引,如果不存在,返回目标值应该被插入的位置。二分查找法之前已经使用过,但是一下子没想起来,所以还是要多练习才行。

Review

AI an ’extinction-level threat’ says study by experts - Breaking News English Lesson

美国国务院委托的一份报告警告说,人工智能存在生存威胁。该报告假设了最坏情况下对人类的“灭绝级威胁”。作者指出,“武器化和失控导致的人工智能能力迅速扩大,对国家安全构成越来越大的风险”。该报告补充说,美国政府“明确而迫切需要”“迅速果断地”进行干预。它继续说:“先进人工智能的兴起有可能破坏全球安全的稳定,让人想起核武器的引入。该报告呼吁成立一个新的联邦机构来监管开发人工智能工具的公司,并限制人工智能的发展。

这份长达247页的报告是国务院于2022年11月委托撰写的。它是由一家提供有关人工智能的技术简报和指导的公司编写的。作者与OpenAI、Google DeepMind和Meta等人工智能公司的专家进行了广泛的交谈。作者建议为人工智能模型的计算能力设定上限。他们还建议将开源或揭示更强大的人工智能模型背后的编码定为刑事犯罪。Futurism.com 网站表示:“超过一半的受访人工智能研究人员表示,人类有5%的可能性会被逼到灭绝,以及其他’极其糟糕的结果’。

Tip

gitlab 仓库迁移

 git clone --mirror url
 git remote set-url –-push origin url
 git push --mirror 

然后会出现提示没有权限的问题,如下图所示:

remote: GitLab: You are not allowed to force push code to a protected branch on this project.

需要打开GitLab,在项目设置那里,开启允许强制更新开关,然后再运行命令git push --mirror即可。

Share

“每当你想要批评别人时,你要记住,这个世界上所有的人,并不是个个都有过你拥有的那些优越条件。”