Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >算法(简单)_搜索二维矩阵&分解质因数

算法(简单)_搜索二维矩阵&分解质因数

作者头像
OBKoro1
发布于 2020-10-27 03:53:50
发布于 2020-10-27 03:53:50
39000
代码可运行
举报
运行总次数:0
代码可运行

搜索二维矩阵

难度:简单

描述:

写出一个高效的算法来搜索 m × n 矩阵中的值。

这个矩阵具有以下特性:

  1. 每行中的整数从左到右是从小到大排序的。
  2. 每行的第一个数大于上一行的最后一个整数。

样例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[
  [1, 3, 5, 7],
  [10, 11, 16, 20],
  [23, 30, 34, 50]
]

给出 target = 3,返回 true

题目分析:

双循环找出是否有这个值,根据第二个特性,我们可以跳过一些第二层循环,算法更具效率。

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * @param matrix: matrix, a list of lists of integers
 * @param target: An integer
 * @return: a boolean, indicate whether matrix contains target
 */
const searchMatrix = function(matrix, target) {
  for (let key of matrix.keys()) { // 遍历外层数组
    let value = matrix[key]; // 拿到每行元素
    // 判断target是否在当前行中,跳过其他不必要循环
    if (target <= value[value.length - 1]) { 
      for (let item of value.keys()) { // 遍历行中元素 
        if (target === value[item]) { // 找到值
          return true;
        } else if (target < value[item]) {  // 值超过target即找不到(因为是排序的)
          return false;
        }
      }
    }
  }
  return false;  // 没有找到即返回false
};

分解质因数

难度:简单

质因数的定义:

能整除给定正整数的质数。

百度百科:质因数

描述:

  1. 将一个整数分解为若干质因数之乘积
  2. 你需要从小到大排列质因子

样例:

  • 给出 10, 返回 [2, 5]
  • 给出 660, 返回 [2, 2, 3, 5, 11]

题目分析:

从小到大排列质因子,需要将同一个质因子整除干净。

比如:20 可以被 2 整除两次。

提示:需要两层循环。

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 分解质因数
const primeFactorization = function(num) {
  let res = [];
  // 不需要判定i是否为质数,如果i不为质数,且能整除num时,num早被i的因数所除。故能整除num的i必是质数。
  // i * i > num 退出循环 num一开始会在第二层循环被i整除成比较小的数字
  for (let i = 2; i * i <= num; i++) {
    while (num % i === 0) {
      // 直到有余数退出循环
      num = num / i; // 改变num
      res.push(i); // 没有余数 能整除 这一步会找出所有质因数 不会出现4的那种情况
    }
  }
  if (num !== 1) res.push(num); // num到最后也是质因数
  return res;
};
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OBKoro1前端进阶积累 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Windows自带防火墙配置
一般情况下,防火墙简单配置就可以满足需求,定制需求可以用IP安全策略,在文档末尾有拓展。
Windows技术交流
2022/01/19
3.6K0
华为防火墙最常见的安全策略
‌作用‌:控制不同安全区域(如Trust与Untrust)间的流量,是防火墙最常用的策略类型。
ICT系统集成阿祥
2025/05/08
3770
华为防火墙最常见的安全策略
系统提示“更新服务不可用”,如何修复?
是山河呀
2025/03/23
3260
工作常用:cmd命令大全(108个)
rundll32 user32.dll,LockWorkStation:表示锁定计算机
测试开发技术
2023/10/23
2.5K0
工作常用:cmd命令大全(108个)
巧用WINDOWS IP安全策略
windows服务器的安全可以通过设定IP安全策略来得到一定的保护,对于每个Windows系统运维人员来说IP安全策略是必备的技能之一。
孙杰
2019/10/29
2.8K0
巧用WINDOWS IP安全策略
F8的几个选项挺有用
自己乱搞导致系统更新一半出问题了,替换system32\config\RegBack里的备份注册表(替换前先备份)
Windows技术交流
2021/09/22
6290
Windows 2016 服务器安全配置和加固「建议收藏」
更换Windows更新服务器 如果你觉得默认的Windows更新服务器比较慢,或者如果选择了阿里云或腾讯云服务器的话,可以更换Windows服务器。
全栈程序员站长
2022/06/27
5.2K0
Windows 2016 服务器安全配置和加固「建议收藏」
网络安全 | 瑞哥带你全方位解读防火墙技术!
简单地说,防火墙的主要作用是划分网络安全边界,实现关键系统与外部环境的安全隔离,保护内部网络免受外部攻击。与路由器相比防火墙提供了更丰富的安全防御策略,提高了安全策略下数据报转发速率。由于防火墙用于安全边界,因此往往兼备NAT、VPN等功能,并且在这方面的相比路由器更加强劲。
网络技术联盟站
2020/09/30
2K0
如何管理Linux防火墙
防火墙是分层安全方法的重要组成部分。以下是如何定期监控和测试防火墙配置以确保安全。
云云众生s
2024/08/20
2810
如何管理Linux防火墙
【干货】华为防火墙配置命令大全,带案例,相当详细的!
防火墙(Firewall)也称防护墙,是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网(US5606668(A)1993-12-15)防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出。防火墙是系统的第一道防线,其作用是防止非法用户的进入。
释然IT杂谈
2021/11/16
7.2K0
【干货】华为防火墙配置命令大全,带案例,相当详细的!
OPC DCOM详细配置方法 - 不关防火墙不换登陆用户
  OPC DCOM的设置是实现跨网络OPC通信的基础,现有的一些OPC DCOM配置教程虽然讲解了如何配置DCOM,但没有讲清楚为什么要这么做,而且各个教程涉及的配置方法也不尽相同。
科控物联
2024/06/27
2.8K0
OPC DCOM详细配置方法 - 不关防火墙不换登陆用户
win10启用或关闭windows功能空白终极解决办法
win10 64位1903居然打开启用或关闭windows功能一片空白,于是我就百度了一下,但是都是以失败告终。具体如下
云未归来
2025/07/18
470
云服务器最基础的安全配置,没有之一
随着公有云服务器的日渐普及,安全问题也就日益突出,本文就来简单讲述一下,云服务器最基础的安全配置。
IT狂人日志
2023/09/05
4390
云服务器最基础的安全配置,没有之一
Linux防火墙firewalld安全设置
防火墙是具有很好的保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。在公司里数据安全是最重要的,要求安全部门进行全公司进行服务器防火墙安全搭建,在原有的基础上进行安全的防火墙设置,大多数生产环境都建议开启,这样才能有效避免安全隐患等问题;本文文字偏多,但是建议大家还是花个十多分钟好好看一下防火墙的原理,这样便于后期问题排查,最后一小节也会有常用命令操作。
没有故事的陈师傅
2019/11/22
4.1K0
9个很酷的cmd命令
网工作为常年公司里的背锅侠,不得不集齐十八般武艺很难甩锅。像cmd命令这种好用又好上手的技术,就是网工上班常备技能。
网络工程师笔记
2023/10/10
1.9K0
9个很酷的cmd命令
win7 防火墙开启ping
Windows7出于安全考虑,默认情况下是不允许外部主机对其进行Ping测试的。但在一个安全的局域网环境中,Ping测试又是管理员进行网络测试所必须的,如何允许 Windows 7的ping测试回显呢
阳光岛主
2019/02/19
2.6K0
win7 防火墙开启ping
锅总浅析防火墙
防火墙是一种网络安全设备或软件,用于监控和控制进出网络流量,基于一组预定义的安全规则来决定允许或阻止特定的网络流量。防火墙的主要目的是保护网络和计算机系统免受未经授权的访问、攻击和其他安全威胁。以下是防火墙的几个关键概念和类型:
锅总
2024/08/05
2270
锅总浅析防火墙
Linux防火墙管理
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137312.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
2.7K0
Linux 系统防火墙配置与管理
Linux 系统下管理防火墙规则的管理程序有两种,分别是iptables防火墙与firewall防火墙,虽然现在新版系统中早已不在使用Iptables,新版本系统中默认安装firewall管理程序,相比于Iptables更具有灵活性。
王 瑞
2022/12/28
2.9K0
Linux下iptables防火墙配置
Netfilter是Linux内核中的一个框架,用于处理网络数据包。它提供了一组钩子函数,允许用户空间程序在数据包经过系统网络栈的不同阶段进行处理。Netfilter可以用于实现数据包的过滤、网络地址转换(NAT)、连接跟踪等功能。
Andromeda
2023/12/08
7030
Linux下iptables防火墙配置
推荐阅读
相关推荐
Windows自带防火墙配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验