记一场面试中遇到的问题

第一题:

简单的字符串拆分、组合的题目。本来题目是很简单,但是里面的一些细节自己没有考虑周全,和面试官在这道题目上讨论了一段时间。后来发现自己把自己差点绕迷糊了,多亏面试官及时提醒。关于技术上的问题还是应该多和别人讨论,通过讨论自己才能够发现自己的不足,然后再及时的查漏补缺。

第二题:

287. 寻找重复数

给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。

假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。

当时想到了两种方法:排序和辅助数组

还有一种时间复杂度O(n),空间复杂度O(1)的方法,面试时没想到。

class Solution {
public:int findDuplicate(vector<int>& nums) {int num = nums[0];int index = 0;while (num != index) {index = num;num = nums[index];nums[index] = index;}return num;}
};

一看就会,一写就废~

第三题:

寻找第一个比n小的素数。

当时是用枚举的方法来写的,当时又想到使用素数打表,但是具体打表的方法并不是太熟悉,只写了一个大概的思路。

Code:

class Solution {
public:int countPrimes(int n) {vector<int> isPrimes(n+1, 1);for (int i = 2; i * i < n; ++i) {for (int j = i * i; j < n; j += i) {isPrimes[j] = 0;}}int count = 0;for (int i = 2; i < n; ++i) {if (isPrimes[i] == 1) count++;}return count;}
};

从上面的代码中可以看出,采用素数打表的方法会开一个额外的辅助数组,时间复杂度也不比枚举更高效。

第四题:

约瑟夫环问题

当时是用循环链表的方法来求解的,更高效的方法是采用数学公式推导。

借用该网友的一句话:本质上就是n-1问题与n问题之间下标的转换,当n=1时,下标自然是0.

class Solution {
public:int lastRemaining(int n, int m) {if (n == 0) return 1;return (lastRemaining(n-1, m) + m) % n;}
};

第五题:

有26个字母a~z,找出所有字母组合,a、b、c、ab、abc、a~z 都是一个组合(顺序无关)

按照这位作者的思路,我当时是想复杂了。读懂题目真的很关键……


以上就是全部的笔试题目,虽然说做的不尽如人意,但是最后还是获得了面试的资格。

  1. CC、cflag、CXX分别代表什么?
    1. CC:编译C代码的默认编译器
    2. cflag:编译参数
    3. CXX:编译C++代码的默认编译器
  2. 使用fork时应该注意些什么?
    1. 主要是想考察多线程和fork的问题:如果父进程是多线程的,fork后子进程是由父进程调用fork的那个线程的副本构成的,子进程内部只存在一个线程。
  3. socket编程时read函数返回值分别代表什么?
    1. 大于0:成功读取的字节数
    2. 等于0:读取到文件尾
    3. -1:发生错误,通过具体的errno确定具体是什么错误
  4. 线程之间是怎么实现通信的?
    1. 不同的进程具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。统一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其他线程所用。
    2. 全局变量实现线程间通信
  5. websocket和http的区别
    1. WebSocket是一种全双工通信协议,它通过一个TCP连接来连接两个系统。一旦建立了WebSocket连接,任何一方都可以向另一方发起传输,并且指定的服务器应用程序可以维护多个客户端连接,从而支持低开销广播和聊天类型的系统。WebSocket连接是使用HTTP升级头从标准HTTP连接形成的,一旦握手完成,用于连接的协议就从HTTP转换为WebSocket。
    2. WebSocket是从HTML5开始提供的一种新协议,能够在单个TCP连接上进行全双工通信。通过使用WebSocket,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送新的数据。在WebSocket模型中,浏览器和服务器只需要完成一次握手,就可以在浏览器和服务器之间形成一条快速传输数据的通道,两者之间即可直接传达数据。
  6. protobuf是用来做什么的,实现的原理是怎样的?
    1. 跨平台代码生成器
    2. 提供一系列的序列化方法
    3. 优点
      1. 序列化以后体积比JSON和XML格式小,便于网络传输
      2. 支持跨平台、跨语言
      3. 有很好的“向后”兼容性
      4. 序列化和反序列化速度更快,高于JSON的处理速度
  7. 交叉编译
    1. 交叉编译就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统。
    2. 具体使用的时候需要根据不同的平台设置不同的环境变量
  8. 实现一个类似于malloc的函数mymalloc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于电脑显示器屏幕看不出灰色,灰色和白色几乎一样无法区分,色彩调整方法

问题&#xff1a; 电脑显示器屏幕看不出灰色&#xff0c;灰色和白色几乎一样无法区分。白色和灰色有色差。 解决方法&#xff1a; 打开“控制面板” ->“色彩管理” ->“高级” ->“校正显示器” 在下一步调节中调成中间这一个实例的样子就可以了 进行微调&#x…

【hadoop】部署hadoop全分布模式

hadoop全分布模式 全分布模式特点部署全分布模式准备工作正式配置hadoop-env.shhdfs-site.xmlcore-site.xmlmapred-site.xmlyarn-site.xmlslaves对NameNode进行格式化复制到另外两台虚拟机启动 对部署是否成功进行测试 全分布模式特点 真正的分布式环境&#xff0c;用于生产具…

【Vue】day02-Vue基础入门

目录 day02 一、今日学习目标 1.指令补充 2.computed计算属性 3.watch侦听器 4.综合案例 &#xff08;演示&#xff09; 二、指令修饰符 1.什么是指令修饰符&#xff1f; 2.按键修饰符 3.v-model修饰符 4.事件修饰符 三、v-bind对样式控制的增强-操作class 1.语法…

边缘检测之loG算子

note // 边缘检测之loG算子&#xff1a;对高斯函数求二阶导数 // G(x,y) exp(-1 * (x*x y*y) / 2 / sigma / sigma) // loG(x,y) ((x*x y*y - 2 * sigma * sigma) / (sigma^4)) * exp(-1 * (x*x y*y) / 2 / sigma /sigma) /* [ 0,0,-1,0,0; 0,-1,-2,-1,0; -1,-2,16,-2…

uni-app实现emoj表情包发送(nvue版)

uni-app实现表情包发送&#xff0c; vue实现思路直接使用grideview网格布局加载emoj表情包即可实现&#xff0c;很简单&#xff0c;但是nvue稍微复杂&#xff0c;这里采用的方案是nvue提供的组件list 看效果 代码 <template><view style"margin-right: 10rpx;m…

Elasticsearch集群状态灯代表含义

了解指示灯状态之前需要先了解下什么是分片和副本。 Sharing(分片、水平扩展) 比如我们的ES集群是3节点的,每个节点最多只能存放300G的文档。当前我们有个大索引有900G,就可以进行分片拆分成3个小索引,每个节点300G,如果我们有10个节点就一个就可以存放一个3T的大索引。…

【Rust 基础篇】Rust Deref Trait 的使用

导言 在 Rust 中&#xff0c;Deref trait 是一种特殊的 trait&#xff0c;用于重载解引用操作符 *。通过实现 Deref trait&#xff0c;我们可以定义类型的解引用行为&#xff0c;使其在使用 * 运算符时表现得像引用类型。 本篇博客将详细介绍 Rust 中如何实现和使用 Deref tr…

C++的static、this和final关键字介绍

C的static、this和final关键字介绍 ☆static关键字&#xff1a;static可以用于不同的上下文&#xff0c;其主要作用如下&#xff1a; 在类中&#xff0c;static成员表示类的静态成员&#xff0c;即属于整个类而不是类的实例。静态成员可以被所有该类的对象所共享&#xff0c;且…

如何使用自有数据微调ChatGLM-6B

构建自己的数据集 数据格式&#xff1a;问答对 官网例子 ADGEN 数据集任务为根据输入&#xff08;content&#xff09;生成一段广告词&#xff08;summary&#xff09;。 { "content": "类型#上衣*版型#宽松*版型#显瘦*图案#线条*衣样式#衬衫*衣袖型#泡泡袖…

3.8 Bootstrap 面包屑导航(Breadcrumbs)

文章目录 Bootstrap 面包屑导航&#xff08;Breadcrumbs&#xff09; Bootstrap 面包屑导航&#xff08;Breadcrumbs&#xff09; 面包屑导航&#xff08;Breadcrumbs&#xff09;是一种基于网站层次信息的显示方式。以博客为例&#xff0c;面包屑导航可以显示发布日期、类别或…

Stable Diffusion + EbSynth + ControlNet 解决生成视频闪烁

一、安装 1.1、安装ffmpeg 下载地址&#xff1a; 解压&#xff0c;配置环境变量 E:\AI\ffmpeg\bin 检查是否安装成功 1.2、安装SD的 EbSynth 插件 插件地址 https://github.com/s9roll7/ebsynth_utility 报错&#xff1a;ModuleNotFoundError: No module named extension…

【广州华锐互动】AR远程巡检系统在设备维修保养中的作用

随着科技的不断发展&#xff0c;AR(增强现实)远程巡检系统在设备检修中发挥着越来越重要的作用。这种系统可以将AR技术与远程通信技术相结合&#xff0c;实现对设备检修过程的实时监控和远程指导&#xff0c;提高设备检修的效率和质量。 首先&#xff0c;AR远程巡检系统可以帮助…

单片机尽力少用位域操作

1、在51单片机中少用uint32_t类型&#xff0c;查看汇编真的好多条指令&#xff0c;尽力避免少用。 2、在32位单片机中&#xff0c;u8、u16、u32类型操作起来基本没有什么影响&#xff0c;下图是我做的测试&#xff0c;可能测试不全面&#xff0c;按照当前测试&#xff0c;在32…

35. 搜索插入位置

给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例 2: 输入:…

无向图 遍历

文章目录 无向图dfn 记录 无向图 每个节点到其它节点的方向不确定&#xff0c;所以如果只按照方向遍历&#xff0c;可能会造成相互指向的死循环 dfn 记录 通过一个记录表&#xff0c;初始每个节点代表的数值是0&#xff0c;每遍历一个节点就让数值1&#xff0c;遍历过程中只…

Kubernetes_1.27.3_Harbor结合Nacos实战

Nacos 实战 作者:行癫(盗版必究) 一:Nacos简介 1.简介 ​ Nacos是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台;Nacos 致力于帮助您发现、配置和管理微服务;Nacos 提供了一组简单易用的特…

实战 ➾【Red Hat 搭建部署VSFTPd服务】

实战 ➾【Red Hat 搭建部署VSFTPd服务】 &#x1f53b; 前言&#x1f53b; 一、vsFTPd服务部署&#x1f6a5; 1.1 vsFTPd服务安装&#x1f6a5; 1.2 vsFTPd服务的启动与关闭 &#x1f53b; 二、vsFTPd相关配置&#x1f6a5; 2.1 vsFTPd的相关配置文件&#x1f6a5; 2.2 配置匿名…

SpringSecurity(6.1.x版本) 认证,授权,自定义登录,内部机制探讨

SpringSecurity 文章目录 SpringSecurityCSRF跨站请求伪造攻击SFA会话固定攻击XSS跨站脚本攻击开发环境搭建认证直接认证使用数据库认证自定义验证 其他配置自定义登录界面记住我功能 授权基于角色授权基于权限授权使用注解权限判断 内部机制探究授权校验流程安全上下文安全上下…

云事业群CTO线技术晋升考核机试题-分布式专题-D 分布式数据同步

2023年&#xff08;Q3财年&#xff09;技术部门CTO线技术人员晋升考核机试题 分布式篇-D 分布式数据同步 *参考答案* 出题人&#xff1a;湖北TL田超凡答案制定&#xff1a;湖北TL田超凡 *****试卷启用前绝密**** 1 缓存一致性产生背景 答&#xff1a;当需要频繁访问数据库…

【JAVA】方法的使用:方法语法、方法调用、方法重载、递归练习

&#x1f349;内容专栏&#xff1a;【JAVA从0到入门】 &#x1f349;本文脉络&#xff1a;JAVA方法的使用&#xff0c;递归练习 &#x1f349;本文作者&#xff1a;Melon_西西 &#x1f349;发布时间 &#xff1a;2023.7.19 目录 1. 什么是方法(method) 2 方法定义 2.1 方法…