面试题41_1 和为S的数

题目一:在一个递增排序数组里,查找两个数,使他们的和正好为S,有多对输出一对即可。


方法一:先在数组中固定一个数,然后判和其余n-1个数的和是否等于S。时间复杂度 O(n^2);


方法二:我们先在数组中选择两个数(我们选择数组的第一个和最后一个),如果他们等于S,我们就找到了这两个数,如果小于S,我们将较小的数字换为后面的数字,因为排在后面的数字要大些。如果大于S,我们将较大的数字换为前面的数字,因为排在前面的数字要小些。  时间复杂度 O(n)

bool FindNumberWithSum( int  data[] ,int  length ,int  sum,int * num1, int* num2)

{

bool found = false;

if(length<1 ||num1 == NULL || num2 =NULL )

return found;

int ahead =length-1;

int behind = 0;

while(ahead >behind)

{

long  curSum=data[ahead]+data[behind];

if(curSum==sun)

{

*num1=data[behind];

*num2=data[ahead];

found=true;

break;

}else if(curSum >sum){

ahead--;

}else{

behind++;

}

return found;

}


题目二:如果查找三个数呢?

思想:我们可以将三个数的和拆分为两个数的和再加上一个数,也就是 num1+num2=sum-num3;如果我们用sum减去数组data里的每个数,我们将得到一个新的数组sumOfTwoNumber,新数组里元素的含义sum-num3;我们只需要在原数组中找两数,使其和等于 sumOfTwoNumber[i](这两个数不能为data[i]);  时间复杂度O(n^2);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker和Kubernetes(简称K8s)是当前非常热门的容器技术。我将根据提供的引用内容回答关于Docker和K8s的面试题。 1. Docker的工作原理是什么? Docker采用了客户端-服务器(C/S)架构模式,其中Docker客户端通过远程API与Docker服务器进行通信来管理和创建容器。Docker容器是通过Docker镜像来创建的,类似于面向对象编程中的对象与类的关系。容器是独立且可移植的运行环境,包含了运行应用程序所需的一切组件,例如代码、运行时环境、系统工具和库等。Docker的工作原理包括以下几个关键步骤: - 首先,开发者使用Docker构建工具将应用程序及其依赖打包成Docker镜像。 - 然后,Docker客户端通过Docker服务器将镜像推送到镜像仓库中,或者从镜像仓库中拉取镜像。 - 当需要运行应用程序时,Docker客户端使用镜像创建一个Docker容器,并将其放置在主机上的容器运行时环境中。 - 在容器运行时环境中,容器可以与主机和其他容器进行通信,并运行应用程序。 - Docker还提供了管理和监控容器的工具,如Docker Compose和Docker Swarm等。 2. Kubernetes中的kubelet的功能和作用是什么? kubelet是Kubernetes集群中的一个重要组件,负责管理节点上的容器运行时环境并维护容器的生命周期。kubelet的功能和作用包括: - 监控容器所在节点的健康状态,并定期报告给Kubernetes的控制平面。 - 根据Pod的规格和配置信息,在节点上创建和销毁容器。 - 监控容器的资源使用情况,如CPU和内存等,并根据需求进行调度和自动扩展。 - 与容器运行时环境进行交互,如Docker、rkt等,以确保容器的正常运行。 - 处理容器的生命周期事件,如启动、停止和重启容器等。 - 根据调度策略将容器分配到合适的节点上。 - 向Kubernetes的控制平面报告容器的状态和健康状况。 总结:Docker是一种容器化技术,通过将应用程序及其依赖打包成镜像来实现应用程序的运行。Kubernetes是一个容器编排和管理平台,它提供了集群管理、调度、自动扩展和监控等功能。kubelet作为Kubernetes集群中的关键组件,负责管理节点上的容器运行时环境并维护容器的生命周期。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值