备战秋招(coding篇)

其中coding题目来源于师兄面试经验

1、链表的结构体+反转链表

本质上就是一个构造函数

struct ListNode{int val_;ListNode* next_;ListNode() : val_(0), next_(NULL) {}ListNode(int x) : val_(x), next_(NULL) {}ListNode(int x, ListNode* next) : val_(x), next_(next) {}
};

反转链表:

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
/*
struct ListNode{int val_;ListNode* next_;ListNode() : val_(0), next_(NULL) {}ListNode(int x) : val_(x), next_(NULL) {}ListNode(int x, ListNode* next) : val_(x), next_(next) {}
};
*/
class Solution {
public:ListNode* reverseList(ListNode* head) {ListNode* pre = nullptr;ListNode* cur = head;while(cur) {ListNode* tmp = cur->next;cur->next = pre;pre = cur;cur = tmp;}return pre;}
};

2、实现一个网页类 能够进行前进、后退、跳转操作

#include <iostream>
#include <stack>
#include <string>
using namespace std; // 这里为了方便开发class Web {
public:Web() {};// 访问void Visit(const string &pages) {while (!backed_pages_.empty()) {backed_pages_.pop();}visited_pages_.push(pages);cout << pages << endl;}// 后退void Back() {if (visited_pages_.empty()) {cout << "ingore" << endl;} else {backed_pages_.push(visited_pages_.top());visited_pages_.pop();if (!visited_pages_.empty()) {cout << visited_pages_.top() << endl;} else {cout << "ingore" << endl;visited_pages_.push(backed_pages_.top());backed_pages_.pop();}}}// 前进void Forward() {if (backed_pages_.empty()) {cout << "ingore" << endl;} else {visited_pages_.push(backed_pages_.top());backed_pages_.pop();cout << visited_pages_.top() << endl;}}~Web() {};private:stack<string> visited_pages_; // 记录访问的页面stack<string> backed_pages_;  // 记录回退的页面
};int main() {int n;cin >> n;Web web;for (int i = 0; i < n; ++i){string action, page;cin >> action;if (action == "VISIT") {cin >> page;web.Visit(page);} else if (action == "BACK") {web.Back();} else if (action == "FORWARD") {web.Forward();} else {cout << "Invalid Action!" << endl;}}return 0;
}
8
VISIT
www.baidu.com
www.baidu.com
VISIT
www.sougou.com
www.sougou.com
BACK
www.baidu.com
FORWARD
www.sougou.com

3、二维矩阵,由0、1填充,其中1代表陆地,0代表海洋,找出距离陆地最远的那块海洋的位置

对应力扣1162题

你现在手里有一份大小为 n x n 的 网格 grid,上面的每个 单元格 都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地。

请你找出一个海洋单元格,这个海洋单元格到离它最近的陆地单元格的距离是最大的,并返回该距离。如果网格上只有陆地或者海洋,请返回 -1

我们这里说的距离是「曼哈顿距离」( Manhattan Distance):(x0, y0) 和 (x1, y1) 这两个单元格之间的距离是 |x0 - x1| + |y0 - y1| 。

示例 1:

输入:grid = [[1,0,1],[0,0,0],[1,0,1]]
输出:2
解释: 
海洋单元格 (1, 1) 和所有陆地单元格之间的距离都达到最大,最大距离为 2。
class Solution {
public:static constexpr int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};static constexpr int MAX_N = 100 + 5;struct Coordinate {int x, y, step;};int n, m;vector<vector<int>> a;bool vis[MAX_N][MAX_N];int findNearestLand(int x, int y) {memset(vis, 0, sizeof vis);queue <Coordinate> q;q.push({x, y, 0});vis[x][y] = 1;while (!q.empty()) {auto f = q.front(); q.pop();for (int i = 0; i < 4; ++i) {int nx = f.x + dx[i], ny = f.y + dy[i];if (!(nx >= 0 && nx <= n - 1 && ny >= 0 && ny <= m - 1)) {continue;}if (!vis[nx][ny]) {q.push({nx, ny, f.step + 1});vis[nx][ny] = 1;if (a[nx][ny]) {return f.step + 1;}}}}return -1;}int maxDistance(vector<vector<int>>& grid) {this->n = grid.size();this->m = grid.at(0).size();a = grid;int ans = -1;for (int i = 0; i < n; ++i) {for (int j = 0; j < m; ++j) {if (!a[i][j]) {ans = max(ans, findNearestLand(i, j));}}}return ans;}
};

这道题目先贴这里,最近还没看图论,

4、现有一个能产生随机数字1-5的函数,请写出一个能产生随机数字1-7的函数

#include<iostream>
#include<ctime>
#include<cstdlib>int GenerateRandom5() {return (rand() % 5) + 1;
}int GenerateRandom7() {int x = ~(1<<31);while(x > 21) {x = 5 * (GenerateRandom5() - 1) + GenerateRandom5();}return x % 7 + 1;
}int main() {srand(static_cast<unsigned int>(time(0)));  // 生成并输出一个1到7之间的随机数  int randomNumber = GenerateRandom7();  std::cout << "Random number between 1 and 7: " << randomNumber << std::endl;  return 0;  
}

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

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

相关文章

深度观察2024中国系统架构师大会(SACC)

今年的中国系统架构师大会&#xff08;SACC&#xff09;在我所在的城市广州举办&#xff0c;很荣幸受邀参加。这次能接触到国内最优秀的架构师&#xff0c;学习他们的架构思想和行业经验。对我而言非常有意义。 大会分为上下午共4场&#xff0c;我参加了上午的多云多活架构设计…

DataFrame转换为Numpy数组

参考&#xff1a;Converting DataFrame to Numpy Array Numpy&#xff08;Numerical Python&#xff09;是一种开源的Python科学计算库&#xff0c;它提供了一个强大的多维数组对象和一系列的工具函数&#xff0c;用于处理这些数组。Pandas则是Python中另一个流行的数据处理库…

【译】矢量数据库 101 - 什么是矢量数据库?

原文地址&#xff1a;Vector Database 101 - What is a Vector Database? 1. 简介 大家好——欢迎回到 Milvus 教程。在上一教程中&#xff0c;我们快速浏览了每天产生的日益增长的数据量。然后&#xff0c;我们介绍了如何将这些数据分成结构化/半结构化数据和非结构化数据&…

学习vue3第五节(reactive 及其相关)

1、定义 reactive() 创建一个响应式代理对象&#xff0c;不同于ref()可以创建任意类型的数据&#xff0c;而reactive()只能是对象&#xff0c;会响应式的深层次解包任何属性&#xff0c;将其标注为响应式 响应式是基于ES6的proxy实现的代理对象&#xff0c;该proxy对象与原对象…

Javaweb的学习18_HTML标签

HTML 概念&#xff1a;Hyper Text Markup Language 超文本标记语言 超文本&#xff1a; 超文本是用超链接的方法&#xff0c;将各种不同空间的文字信息组织在一起的网状文本。 标记语言&#xff1a; 由标签构成的语言。<标签名称> 如 html&#xff0c;xml 注意&#xff1…

【HTML】悄悄分享两个好玩的html代码

最近整理U盘资源&#xff0c;本来打算清理掉一些“无用”的文件&#xff0c;结果翻到了之前保存的一个保存着好玩代码的文件夹&#xff0c;默默点开了命名为"大佬做的html.html”这个文件&#xff08;谁还不是一个中二少年呢&#xff09;话不多说&#xff0c;上代码&#…

python3GUI--qt仿暴风影音视频播放器By:PyQt5(附下载地址)

文章目录 一&#xff0e;前言二&#xff0e;环境1.开发环境2.打包环境3.运行环境 三&#xff0e;软件截图1.启动页2.视频播放3.音频播放4.其他1.托盘2.对话框 四&#xff0e;功能总览五&#xff0e;代码展示&心得1.UI设计2.如何防止卡顿3.如何自定义组件 五&#xff0e;思考…

【晶振选型】VCTCXO TCXO 布线 参考

一、供电旁路电容 二、使能信号 三、输出的交流耦合 四、输出波形转换 五、压控滤波电容 最后 CTS的是真不错&#xff0c;1K可是-140啊

手拉手整合Springboot3+RocketMQ2.3

RocketMQ 基本概念 消息模型Message Model RocketMQ 主要由 Producer、Broker、Consumer 三部分组成&#xff0c;其中 Producer 负责生产消息&#xff0c;Consumer 负责消费消息&#xff0c;Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器&#xff0c;每个 Bro…

算法沉淀——贪心算法四(leetcode真题剖析)

算法沉淀——贪心算法四 01.最长回文串02.增减字符串匹配03.分发饼干04.最优除法 01.最长回文串 题目链接&#xff1a;https://leetcode.cn/problems/longest-palindrome/ 给定一个包含大写字母和小写字母的字符串 s &#xff0c;返回 通过这些字母构造成的 最长的回文串 。 …

我的自建博客之旅06之Mrdoc

这个是我折腾笔记项目的最后一篇文章了,这个项目是类似于语雀的文档笔记项目,因为我当初想找一个既可以当做笔记,又可以作为团队文档分享的笔记,除了语雀,就发现了这个项目。 这个开源项目的界面或者文档组织方式其实是我最喜欢的,但是我后来放弃它的原因是它的后台编辑逻…

slab分配器

什么是slab分配器&#xff1f; 用户态程序可以使用malloc及其在C标准库中的相关函数申请内存&#xff1b;内核也需要经常分配内存&#xff0c;但无法使用标准库函数&#xff1b;linux内核中&#xff0c;伙伴分配器是一种页分配器&#xff0c;是以页为单位的&#xff0c;但这个…

RISC-V架构的三种特权模式如何切换

1、RISC-V的三种特权模式 特权模式功能描述机器模式&#xff08;M-mode&#xff09;具有最高特权等级&#xff0c;具有访问所有资源的权限&#xff0c;通常运行固件和内核用户模式&#xff08;U-mode&#xff09;权限要比M模式低&#xff0c;通常是用来运行操作系统内核管理员…

iOS常见崩溃简介

1. 崩溃 多指在移动设备&#xff08;如iOS、Android设备&#xff09;中或不可移动设备&#xff08;如:Windows、Linux等设备&#xff09;&#xff0c; 在打开或使用应用程序时出现的突然退出中断的情况&#xff08;类似于Windows的应用程序崩溃&#xff09;。 多表现为&#…

2024.3.21 如何将idea的注释设置为在首字母前开始而不是句首

2024.3.21 如何将idea的注释设置为在首字母前开始而不是句首 两种写法的差异 修改办法 将右下角的勾去掉即可。

[ROS 系列学习教程] rosbag Python API

ROS 系列学习教程(总目录) 本文目录 1. 构造函数与关闭文件2. 属性值3. 写bag文件内容4. 读bag文件内容5. 将bag文件缓存写入磁盘6. 重建 bag 文件索引7. 获取bag文件的压缩信息8. 获取bag文件的消息数量9. 获取bag文件记录的起止时间10. 获取话题信息与消息类型 rosbag 的 Pyt…

【Leetcode-73.矩阵置零】

题目&#xff1a; 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]]示例 2&…

echart trigger 为 axis 的时候不显示 tooltip 解决办法

echart trigger 为 axis 的时候不显示 tooltip 解决办法 在项目 vitetsvue3 中使用 echart 显示了一个曲线图&#xff1a; 但当把图表的 trigger 设置成 axis 的时候&#xff0c;鼠标扫过并不显示具体的数值&#xff0c;如上图所示。 但 trigger item 的时候是正常的。 解决…

在DevEco Studio中第一次使用网络图片不显示问题

当我们新建项目 第一次使用网络图片 没有显示时 加这段代码就可以了 如果刷新图片还是没有显示 就重启编辑器。 "requestPermissions": [{"name": "ohos.permission.INTERNET"}],

如何构建Docker自定义镜像

说明&#xff1a;平常我们使用Docker运行各种容器&#xff0c;极大地方便了我们对开发应用的使用&#xff0c;如MySQL、Redis&#xff0c;以及各种中间件&#xff0c;使用时只要拉镜像&#xff0c;运行容器即可。本文介绍如何创建一个Demo&#xff0c;自定义构建一个镜像。 开…