【2022】贝壳找房秋招C++工程师笔试卷1

news2024/11/18 1:29:45

题解:直接暴力

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @param k int整型 
     * @return string字符串
     */
    string NS_String(string s, int k) {
        // write code here
        vector<int>a(26,0);
        for(int i=0;i<s.length();i++)
        {
              a[s[i]-'a']++;
        }
        int num=0;
        string s2="";
        if(k==0) return s;
        for(int i=0;i<k;i++){
               while(a[num]==0&&num<26){
                num++;
               }
               if(num>=26) 
               {
                break;
               }
               s2="";
               char c='a'+num;
               for(int j=0;j<s.length();j++){
                   if(s[j]==c)
                   {
                    continue;
                   }
                   else{
                    s2.push_back(s[j]);
                   }
               }
               s="";
               s.append(s2);
               num++;
            //    if(s2.compare("")==0)
            //    {
            //      return "";
            //    }
        }
        return s2;
    }
};

 

 题解:1....n.....2

            1...n......2

作为一整个的一个循环(2*n-2),然后对其进行处理。

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 
     * @param m long长整型 
     * @return long长整型vector
     */
    vector<long> FarmerNN(int n, long long m) {
        // write code here
        vector<long>res(n,0);
        if(n==1){
            res[0]=m;
            return res;
        }
        long long x=m/(2*n-2);
        int w=m%(2*n-2);
        for(int i=0;i<n;i++)
        {
            if(i!=n-1 && i!=0)
            res[i]=2*x;
            else{
                res[i]=x;
            }
            
        }
        int num=0;
        int id=0;
        for(int i=0;i<w;i++){
                if(num<n && id==0)
                {
                    res[num]++;
                      num++;
                }
                else if(num<n)
                {
                    res[num]++;
                      num--;
                }
                else{
                    id=1;
                    num=n-2;
                    res[num]++;
                    num--;
                }
              
        }
        return res;
    }
};

 题解:滑动窗口+哈希,代码有些不易理解,中间需要自己考虑一下;

比如 x1 x2 y2 y1(这里假x1^y1=t,x2^y2=t)

当r处于y1位置时,此时l处于y2这个位置

class Solution {
public:
    long long section(vector<int>& a, int t) {
        unordered_map<int,int> mp;
        long long res=0;
        int l=0;
        int r=0;
        while(r<a.size()){
            if(mp.count(a[r]^t)>0){
                l=max(l,mp.at(a[r]^t)+1);
            }
            res+=(r-l);
            mp[a[r]]=r;
            r++;
        }
        return res;
    }
};

 题解:首先使用hashmap标记上具有相同子节点的节点,然后对具有相同节点的节点进行暴力比较是否结构相同,还利用了map的建的有序性,我们使用rbegin和rend使得其键值从大 到小排序,这样的话,我们第一次遇到了相同的同构子树,即是所求最大同构子树)

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 *	TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 * };
 */
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param root TreeNode类 
     * @return int整型
     */
   
    map<int,vector<TreeNode*>>mp;
    int count(TreeNode* root){
        if(root==nullptr) return 0;
        int m=1+count(root->left)+count(root->right);
        mp[m].push_back(root);
        return m;
    }

    bool com(TreeNode* root1,TreeNode* root2){
        if(root1==nullptr && root2==nullptr) return true;
        else if(root1!=nullptr && root2!=nullptr) return com(root1->left,root2->left)&&com(root1->right,root2->right);
        else return false;
    }
    // map<int, vector<TreeNode*>> omap;
     int res=0;
    int maxSubTree(TreeNode* root) {
        if(root==nullptr) return 0;
        count(root);//计算每个节点的子节点数目;
        auto s=mp.rbegin();
    //    cout<<s->first;
        while(s!=mp.rend()){
            vector<TreeNode*> node=s->second;
            for(int i=0;i<node.size();i++){
                for(int j=i+1;j<node.size();j++)
                {
                    if(com(node[i],node[j]))
                    {
                        return s->first;
                        // res=max(res,s->first);
                    }
                }
            }
            s++;
        }
        return 0;
 
    }

};

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

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

相关文章

【C语言day07】

在调用函数的时候&#xff0c;真实传递给函数的是实参&#xff0c;函数定义部分函数名后的参数是形参。 形参和实参的名字是可以相同的&#xff0c;在函数调用的时候&#xff0c;形参是实参的一份临时拷贝&#xff0c;分别占用不同的内存空间&#xff0c;所以A正确&#xff0c;…

智慧园区电力监控解决方案

1、概述 电力监控系统实现对园区变电站、配电房内断路器、变压器、柴油发电机以及其它重要设备进行监视、测量、记录、报警等功能&#xff0c;并与保护设备和远方控制中心及其他设备通信&#xff0c;实时掌握园区变电站和配电房运行状况&#xff0c;快速排除故障&#xff0c;保…

[UE4][C++]调整分屏模式下(本地多玩家)视口的显示位置和区域

一、分屏模式设置 在UE4中&#xff0c;多个玩家共用一个显示器就可以启用分屏模式&#xff0c;按玩家人数&#xff08;最大四人&#xff09;将屏幕均匀分割&#xff0c;显示不同玩家的视角&#xff0c;开发者可以在编辑器里设置分割类型&#xff08;水平或者垂直&#xff09;&a…

EC200U-CN学习(二)

EC200U系列内置丰富的网络协议&#xff0c;集成多个工业标准接口&#xff0c;并支持多种驱动和软件功能&#xff08;适用于Windows 7/8/8.1/10、Linux和Android等操作系统下的USB驱动&#xff09;&#xff0c;极大地拓展了其在M2M领域的应用范围&#xff0c;如POS、POC、ETC、共…

XCP详解「3.4·CANape中新建A2L文件」

返回 XCP详解「总目录」 A2L正常由ASAP2软件生成&#xff0c;但CANape也可以生成&#xff0c;此方法仅作知晓&#xff0c;不推荐使用 CANape新建工程后&#xff0c;新建Device&#xff0c;后面默认next next next 选择通道&#xff0c;设置网络参数&#xff08;波特率&#xf…

Vue - 可视化用户角色、菜单权限、按钮权限配置(动态获取菜单路由)

GitHub Demo 地址 在线预览 前言 关于动态获取路由已在这里给出方案 Vue - vue-admin-template模板项目改造&#xff1a;动态获取菜单路由 这里是在此基础上添加了系统管理模块&#xff0c;包含用户管理&#xff0c;角色管理&#xff0c;菜单管理&#xff0c;字典管理&#xf…

使用分布式HTTP代理爬虫实现数据抓取与分析的案例研究

在当今信息爆炸的时代&#xff0c;数据已经成为企业决策和发展的核心资源。然而&#xff0c;要获取大规模的数据并进行有效的分析是一项艰巨的任务。为了解决这一难题&#xff0c;我们进行了一项案例研究&#xff0c;通过使用分布式HTTP代理爬虫&#xff0c;实现数据抓取与分析…

【方法】带密码的ZIP分卷压缩文件如何解压?

当文件比较大的时候&#xff0c;很多人会在压缩时使用分卷压缩&#xff0c;这样可以将一个大文件分割成若干小分卷&#xff0c;方便保存及传输&#xff0c;也能减少下载时间。 如果分卷压缩文件设置了密码&#xff0c;要如何解压呢&#xff1f;下面小编以常用的ZIP格式为例&am…

IIS部署安装.NET CORE6.0应用程序,成功解决http error 503.the service is unavailable错误

一、下载安装.NET CORE 运行环境包 网址&#xff1a;Download .NET Core 3.1 (Linux, macOS, and Windows).NET Core 3.1 downloads for Linux, macOS, and Windows. .NET is a free, cross-platform, open-source developer platform for building many different types of ap…

Ubuntu--科研工具系列

翻译系列 pot-desktop github链接: https://github.com/pot-app/pot-desktop 下载deb Releases pot-app/pot-desktop GitHub 安装过程 在下载好的deb目录下打开终端(自动安装依赖) sudo apt install "XXX.deb" &#xff08;后面可以直接托文件到终端&#…

Redis集群的搭建

1.单机安装Redis 首先需要安装Redis所需要的依赖&#xff1a; yum install -y gcc tcl 然后将课前资料中提供的Redis安装包上传到虚拟机的任意目录&#xff1a; 例如&#xff0c;放到了/tmp目录&#xff1a; 解压缩&#xff1a; tar -xzf redis-6.2.4.tar.gz 解压后&#…

记一次杀猪盘的渗透之旅

所谓“杀猪盘”&#xff0c;是指诈骗分子利用网络交友通常是“异性”交友&#xff0c;诱导受害人下载诈骗APP并在上面进行各种“投资”&#xff0c;如菠菜、股票、期货甚至虚拟货币的网络诈骗。今年某月某日小白就遭遇了这种骗局&#xff0c;他先是被骗子通过QQ添加并下载了一个…

wireshark实战tcp三次握手和四次挥手

1 、安装好后wireshark后,由于我本地起了一个服务,所以我选择的是本地回环地址的这个选项,如下图(网络接口可以选择其它选项). 2、点击进去之后,在头部的栏上输入下面内容并且回车 ip.addr192.168.3.16 and tcp.port80803、浏览器发送请求 http://192.168.3.16:8080/tomcat_te…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机当前实时帧率(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK里函数来计算相机的实时帧率&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的帧率的技术背景Baumer工业相机的帧率获取方式CameraExplorer如何查看相机帧率信息在BGAPI SDK里通过函数获取相机帧率 Baumer工业相机通过BGA…

集群间ssh配置免密登录

ssh免密配置&#xff0c;可以将ssh生成的密钥分发给目标主机&#xff0c;之后再用ssh访问目标主机时就无需输入密码 下面我们来配置用centos71免密登录centos72主机 使用下面指令生成一个密钥 ssh-keygen其中会提示&#xff0c;是否输入密码短语&#xff0c;这里不输入&#…

一份关于windows server服务器的安全漏洞处理建议(来自绿盟安全评估)

文章目录 前言一、服务器主机存在漏洞应该怎么修复&#xff1f; 二、报告中的高危漏洞&#xff08;部分展示&#xff09;1.Microsoft Windows CredSSP 远程执行代码漏洞(CVE-2018-0886)2.SSL/TLS协议信息泄露漏洞(CVE-2016-2183)3.SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)4.SS…

【飞书】飞书导出md文档 | 飞书markdown文档导出 | 解决飞书只能导出pdf word

一、飞书导出markdown github地址&#xff1a;https://github.com/Wsine/feishu2md 这是一个下载飞书文档为 Markdown 文件的工具&#xff0c;使用 Go 语言实现。 请看这里&#xff1a;招募有需求和有兴趣的开发者&#xff0c;共同探讨开发维护&#xff0c;有兴趣请联系。 二、…

【日常分享】Xposed框架究竟是啥?

今天在处理一个客户App加固的时候&#xff0c;看到老大用到了Xposed&#xff0c;一时竟不知道这是什么东西。今天就沉下心来&#xff0c;写写做个笔记。 一、Xposed狂阿基是什么&#xff1f; Xposed 是一个在 Android 系统上运行的开源框架&#xff0c;它允许用户在不修改应用…

MacDroid for Mac:在Mac上访问和传输Android文件的最简单方式

MacDroid for Mac是一款帮助用户在Mac和Android设备之间传输文件的软件。由于Mac OS X本身并不支持MTP协议&#xff0c;所以透过USB将Android设备连接到Mac电脑上是无法识别的&#xff0c;更别说读取里面的文件了。 MacDroid可以帮助您轻松搞定这个问题&#xff0c;您可以将An…

微服务划分的原则

微服务的划分 微服务的划分要保证的原则 单一职责原则 1、耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密&#xff0c;其耦合性就越强&#xff0c;模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及…