华为技面三轮面试题

1. 最长回文子串 -- 中心扩散法

给你一个字符串 s,找到 s 中最长的回文子串。

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

示例 1:

输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
class Solution {//中心扩散String max = "";public String longestPalindrome(String s) {for(int i = 0; i < s.length(); i++){//回文串是偶数dfs(s, i ,i);//回文串是奇数dfs(s, i, i + 1);}return max;}void dfs(String s, int left, int right){String tmp;while(left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)){tmp = s.substring(left, right + 1);if(tmp.length() > max.length()){max = tmp;}left--;right++;}}

2. 插入后的最大值 -- 逻辑思维能力

给你一个非常大的整数 n 和一个整数数字 x ,大整数 n 用一个字符串表示。n 中每一位数字和数字 x 都处于闭区间 [1, 9] 中,且 n 可能表示一个 负数 。

你打算通过在 n 的十进制表示的任意位置插入 x 来 最大化 n 的 数值 ​​​​​​。但 不能 在负号的左边插入 x 。

  • 例如,如果 n = 73 且 x = 6 ,那么最佳方案是将 6 插入 7 和 3 之间,使 n = 763 。
  • 如果 n = -55 且 x = 2 ,那么最佳方案是将 2 插在第一个 5 之前,使 n = -255 。

返回插入操作后,用字符串表示的 n 的最大值。

输入:n = "-13", x = 2
输出:"-123"
解释:向 n 中插入 x 可以得到 -213、-123 或者 -132 ,三者中最大的是 -123 。

关键:分正负,正数:寻找第一次比高位小插入,负数:寻找第一次比高位大的插入

class Solution {public String maxValue(String n, int x) {int len = n.length();String res = "";if(!n.substring(0,1).equals("-")){for(int i = 0; i < n.length(); i++){String tmp = n.substring(i,i + 1);//注意integer会自动拆箱,可以直接比较if(Integer.parseInt(tmp)  < x){res = res + x + n.substring(i);break;}res = res + tmp;}if(res.length() == len){res = res + x;}}else{res = "-";for(int i = 1; i < n.length(); i++){String tmp = n.substring(i,i + 1);if(Integer.parseInt(tmp)  > x){res = res + x + n.substring(i);break;}res = res + tmp;}if(res.length() == len){res = res + x;}}return res;}
}

3. 水果成篮 -- 滑动窗口

关键:本题的关键不在方法,而在对题目的理解上,读懂题就soeasy,否则gg,我最后是让面试官给我解释清啥意思的,千万别憋着,你就一个劲问。。。题目翻译成人话就是 :找至多包含两种元素的最长子串,返回其长度

你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。

你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果:

  • 你只有 两个 篮子,并且每个篮子只能装 单一类型 的水果。每个篮子能够装的水果总量没有限制。
  • 你可以选择任意一棵树开始采摘,你必须从 每棵 树(包括开始采摘的树)上 恰好摘一个水果 。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右移动到下一棵树,并继续采摘。
  • 一旦你走到某棵树前,但水果不符合篮子的水果类型,那么就必须停止采摘。

给你一个整数数组 fruits ,返回你可以收集的水果的 最大 数目。

示例 1:

输入:fruits = [1,2,1]
输出:3
解释:可以采摘全部 3 棵树。
class Solution {public int totalFruit(int[] fruits) {//map<类型,数量>Map<Integer, Integer> map = new HashMap<>();int ans = 0;int x, y;for(int l = 0, r = 0; r < fruits.length; r++){//你就往里放x = fruits[r];map.put(x, map.getOrDefault(x, 0) + 1);//超过两种类型就清空一个篮子while(map.size() > 2){y = fruits[l++];map.put(y, map.get(y) - 1);if(map.get(y) == 0){map.remove(y);}}ans = Math.max(ans, r - l + 1);}return ans;}
}

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

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

相关文章

磁力计LIS2MDL开发(3)----九轴姿态解算

磁力计LIS2MDL开发.3--九轴姿态解算 概述视频教学样品申请完整代码下载使用硬件欧拉角万向节死锁四元数法姿态解算双环PI控制器偏航角陀螺仪解析代码 概述 LIS2MDL 包含三轴磁力计。 lsm6ds3trc包含三轴陀螺仪与三轴加速度计。 姿态有多种数学表示方式&#xff0c;常见的是四元…

服务器RAID配置及功能介绍

服务器RAID配置及功能介绍 一、RAID磁盘阵列详解1.RAID磁盘阵列介绍2.RAID 03.RAID14.RAID35.RAID56.RAID67.RAID 10总结阵列卡介绍 一、RAID磁盘阵列详解 1.RAID磁盘阵列介绍 ①是Redundant Array of lndependent Disks的缩写中文简称为独立冗余磁盘阵列。 ②把多块独立的物…

聊聊AsyncHttpClient的ListenableFuture

序 本文主要研究一下AsyncHttpClient的ListenableFuture ListenableFuture org/asynchttpclient/ListenableFuture.java public interface ListenableFuture<V> extends Future<V> {/*** Terminate and if there is no exception, mark this Future as done an…

NBA得分数据可视化

简介 这是上学期的一些课外活动内容&#xff0c;将 NBA 得分数据进行可视化&#xff0c;并进行后续的探索性分析和建模&#xff08;本文未介绍&#xff09;。主要研究动机来源于这篇论文&#xff1a; 该论文使用二元的伽马过程来刻画 NBA 主客场得分数据&#xff0c;并且考虑了…

@RabbitHandler和@RabbitListener的区别

RabbitHandler 和 RabbitListener 是Spring AMQP&#xff08;特别是针对RabbitMQ&#xff09;中常用的两个注解&#xff0c;它们在消息处理中扮演着不同的角色。 RabbitListener 定义&#xff1a;RabbitListener 注解用于标记一个方法&#xff0c;使其成为消息队列的监听器&am…

5.5 Linux Apache服务

1、概念介绍 a. Web 服务简介 WEB服务器也称为WWW(WORLD WIDE WEB&#xff0c;万维网)服务器&#xff0c;主要功能是提供网上信息浏览服务。 常用web服务器&#xff1a;httpd&#xff08;apache&#xff09;、nginx、tomcat、IIS 客户端&#xff1a;IE、firefox、chrome b…

高通平台开发系列讲解(AI篇)SNPE工作流程介绍

文章目录 一、转换网络模型二、量化2.1、选择量化或非量化模型2.2、使用离线TensorFlow或Caffe模型2.3、使用非量化DLC初始化SNPE2.4、使用量化DLC初始化SNPE三、准备输入数据四、运行加载网络沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要介绍SNPE模型工作…

Android终端模拟器Termux上使用Ubuntu

Termux 上安装各种 Linux 系统是通过 proot-distro 工具来实现的&#xff0c;所以先安装一下 proot-distro 工具。 ~ $ pkg install proot-distro 查看Termux支持安装那些Linux ~ $ proot-distro listSupported distributions:* Alpine LinuxAlias: alpineInstalled: noComme…

学习Java第70天,过滤器Filter简介

过滤器概述 Filter,即过滤器,是JAVAEE技术规范之一,作用目标资源的请求进行过滤的一套技术规范,是Java Web项目中最为实用的技术之一 Filter接口定义了过滤器的开发规范,所有的过滤器都要实现该接口 Filter的工作位置是项目中所有目标资源之前,容器在创建HttpServletRequest和…

Cmake基础(6)

这篇文章阐述如何添加第三方库 文章目录 包含目录和依赖库注意事项target_link_libraries 基本用法&#xff1a;修饰词&#xff1a;PUBLIC、PRIVATE、INTERFACE 其他注意事项&#xff1a;optimized 和 debug 配置标识&#xff1a;示例&#xff1a; 包含目录和依赖库 把上一篇…

【C++】POCO学习总结(十八):XML

【C】郭老二博文之&#xff1a;C目录 1、XML文件格式简介 1&#xff09;XML文件的开头一般都有个声明&#xff0c;声明是可选 <&#xff1f;xml version"1.0" encoding"UTF-8"?>2&#xff09;根元素&#xff1a;XML文件最外层的元素 3&#xff…

java内置的数据结构

Java语言提供了许多内置的数据结构&#xff0c;包括&#xff1a; 1. 数组&#xff08;Array&#xff09;&#xff1a;数组是最基本的数据结构之一&#xff0c;它是一个有序的元素集合&#xff0c;每个元素都有一个对应的索引。在Java中&#xff0c;数组可以通过声明和初始化来创…

Docker使用2-Update the application

写在前面 主题是Update the application&#xff0c;这里是链接 更新项目 承接上个文章&#xff0c;这个文章主要是学习项目内容更新后重新构建image。 编辑上个项目的src/static/js/app.js文件&#xff0c;将第56行注释&#xff0c;添加下面的代码 <p className"…

【从零开始学习--设计模式--策略模式】

返回首页 前言 感谢各位同学的关注与支持&#xff0c;我会一直更新此专题&#xff0c;竭尽所能整理出更为详细的内容分享给大家&#xff0c;但碍于时间及精力有限&#xff0c;代码分享较少&#xff0c;后续会把所有代码示例整理到github&#xff0c;敬请期待。 此章节介绍策…

uniapp全局事件uni.$on,可以不相邻的组件之间传递参数

目录 传送参数页面接受参数页面最后 uniapp全局事件&#xff0c;也就是说&#xff0c;不相邻的&#xff0c;不是父子组件&#xff0c;也可以传递参数。 一个组件&#xff0c;传递项目内所有文件其中一个里面内&#xff0c;可以接受到参数。 传送参数页面 <template><…

每天五分钟计算机视觉:网络中的网络(NiN)

本文重点 前面的课程中我们学习了众多的经典网络模型&#xff0c;比如LeNet、AlexNet、VGG等等&#xff0c;这些网络模型都有共同的特点。 它们的特点是&#xff1a;先由卷积层构成的模块充分提取空间特征&#xff0c;然后再由全连接层构成的模块来输出分类结果。也就是说它们…

C练习题_3答案

一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。 以下正确的C语言自定义标识符是(A)A. la B. 2a C. do D. a.12 2.在C语言中,错误的常数表示是(D) A. OL B. 0x6aL C. ‘6’…

数据结构基础小结

数据结构基础小结 概述 什么是算法&#xff1f; 在计算机领域里&#xff0c;算法是一系列程序指令&#xff0c;用于处理特定的运算和逻辑问题。 衡量算法优劣的主要标准是时间复杂度和空间复杂度。 什么是数据结构&#xff1f; 数据结构&#xff0c;对应的英文单词是 dat…

Apache SeaTunne简介

Apache SeaTunne简介 文章目录 1.Apache SeaTunne是什么&#xff1f;1.1[官网](https://seatunnel.apache.org/)1.2 项目地址 2.架构3.特性3.1 丰富且可扩展的连接器和插件机制3.2 支持分布式快照算法以确保数据一致性3.3 支持流、批数据处理&#xff0c;支持全量、增量和实时数…

C#实现一个安全的事件订阅器

1.解释下什么是事件订阅器 在C#的上下文中&#xff0c;事件订阅器是一种用于处理特定事件的机制。 事件&#xff08;Event&#xff09;&#xff1a;事件是在软件应用程序中发生的事物&#xff0c;如按钮被点击、数据被更改等。在C#中&#xff0c;事件是通过使用event关键字声…