在家照顾即将生产的媳妇以及全职学习已经有一段时间了,每天除了技术学习以外算法也不能落下,但是理论学的再多也不如实践一次,于是乎,决定参加一下面试检验下学习成果,Boss放开简历,立刻就有几个华为OD的来约,遂参加机试,分享题目如下:

全程用时大概一小时50分钟,前两道100分的题总耗时不到半小时(练习时做到原题了,属实幸运),后面那道200分的题因为不熟悉二维数组控制台输入,白白耗费了半小时(真是菜鸡本鸡,一个控制台输入卡了半个多小时)

另外:需要手动导包!!!
示例1:
输入
10 11 21 19 21 17 21 16 21 18 15
输出
21
示例2:
输入
2 1 5 4 3 3 9 2 7 4 6 2 15 4 2 4
输出
3
示例3:
输入
5 1 5 3 5 2 5 5 7 6 7 3 7 11 7 55 7 9 98 9 17 9 15 9 9 1 39
输出
7
10分钟AC,这是一道非常常见的题,力扣和牛客题库中都有,但凡认真刷过题的小伙伴肯定做过原题,没啥说的
直接贴上我的答案:
public class 查找众数及中位数 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
HashMap<Integer, Integer> map = new HashMap<>();
int max = 0;
List<Integer> list =new ArrayList<>();
while (in.hasNextInt()) {
int num = in.nextInt();
map.merge(num,1,(a,b)->a+b);
if (map.get(num)>max){
list.clear();
list.add(num);
max = map.get(num);
}else if (map.get(num)==max){
list.add(num);
}
}
list.sort(Integer::compare);
int n = list.size();
if (n%2==0){
System.out.print((list.get(n/2)+list.get(n/2-1))/2);
}else{
System.out.print(list.get(n/2));
}
}
}
也是我做过的原题(哈哈大笑,两题都做过,白送200分)10分钟AC
public class 判断字符串子序列 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
char[] tChars = scanner.nextLine().toCharArray();
char[] sChars = scanner.nextLine().toCharArray();
LinkedHashMap<Character, Integer> characterIntegerLinkedHashMap = new LinkedHashMap<Character, Integer>();
int des=sChars.length;
if (tChars.length>0&&sChars.length>0) {
for (int j = tChars.length - 1; j >= 0; j--) {
for (int i = sChars.length - 1; i >= 0; i--) {
if (tChars[j] == sChars[i] & des > i) {
des = i;
characterIntegerLinkedHashMap.put(tChars[j], i);
break;
}
}
}
int ros = 0;
for (int j = tChars.length - 1; j >= 0; j--) {
if (!characterIntegerLinkedHashMap.containsKey(tChars[j])) {
ros = -1;
break;
}
}
if (ros != -1) {
System.out.println(characterIntegerLinkedHashMap.get(tChars[0]));
} else {
System.out.println(ros);
}
}else {
System.out.println(-1);
}
}
}
服务器连接方式包括直接相连,间接连接。A和B直接连接,B和C直接连接,则A和C间接连接。
直接遵接和间接连接都可以发送广播。
给出一个NN数组,代表N个服务器,matrix[i][j]=1,则代表i和j直接连接;不等于1时,代表i和j不直接连接。matrix[i][j]==1, 即自己和自已直接连接。
计算初始需要给几合服务器广播,才可以使每个服务器都收到广播。
输入描述:
输入为N行,每行有N个数字,为0成1,由空格分隔,构成NN的数组,N的范围为1<=N<=40
输出描述:
输出一个数字,为需要广播的服务器的数量
这题因为输入的二维数组不确定边界以及大小,加上不熟悉手动控制台输入,导致我在处理输入的地方就卡了半个多小时
思路就是典型的dfs搜索
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int size = 0, num = 0;
List<Integer> list = new ArrayList<>();
while(sc.hasNextLine()){
String[] s = sc.nextLine().split(" ");//获取每行的数据
size = s.length;//一行有几列
num++;//记录二维数组有几行
for(int i=0;i<size;i++){
list.add(Integer.valueOf(s[i]));
}
}
int[][] gbs = new int[num][size];
for(int i=0;i<num;i++){
for(int j=0;j<size;j++){
gbs[i][j] = list.get(i*size+j);//将数据保存至二维数组
}
}
System.out.println(find(gbs));
}
public static int find(int[][] gbs) {
int length = gbs.length;
boolean[] visited = new boolean[length];
int count = 0;
for (int i = 0; i < length; i++) {
if (!visited[i]) {
dfs(gbs, visited, i);
count++;
}
}
return count;
}
public static void dfs(int[][] gbs, boolean[] visited, int i) {
for (int j = 0; j < gbs.length; j++) {
if (gbs[i][j] == 1 && !visited[j]) {
visited[j] = true;
dfs(gbs, visited, j);
}
}
}
}
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100
我刚刚安装了带有RVM的Ruby2.2.0,并尝试使用它得到了这个:$rvmuse2.2.0--defaultUsing/Users/brandon/.rvm/gems/ruby-2.2.0dyld:Librarynotloaded:/usr/local/lib/libgmp.10.dylibReferencedfrom:/Users/brandon/.rvm/rubies/ruby-2.2.0/bin/rubyReason:Incompatiblelibraryversion:rubyrequiresversion13.0.0orlater,butlibgmp.10.dylibpro
我正在运行Ubuntu11.10并像这样安装Ruby1.9:$sudoapt-getinstallruby1.9rubygems一切都运行良好,但ri似乎有空文档。ri告诉我文档是空的,我必须安装它们。我执行此操作是因为我读到它会有所帮助:$rdoc--all--ri现在,当我尝试打开任何文档时:$riArrayNothingknownaboutArray我搜索的其他所有内容都是一样的。 最佳答案 这个呢?apt-getinstallri1.8编辑或者试试这个:(非rvm)geminstallrdocrdoc-datardoc-da
我已经通过提供MagickWand.h的路径尝试了一切,我安装了命令工具。谁能帮帮我?$geminstallrmagick-v2.13.1Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingrmagick:ERROR:Failedtobuildgemnativeextension./Users/ghazanfarali/.rvm/rubies/ruby-1.8.7-p357/bin/rubyextconf.rbcheckingforRubyversion>=1.8.5...yescheckingfor/
我正在使用macos,我想使用ruby驱动程序连接到sqlserver。我想使用tiny_tds,但它给出了缺少free_tds的错误,但它已经安装了。怎么能过这个?~brewinstallfreetdsWarning:freetds-0.91.112alreadyinstalled~sudogeminstalltiny_tdsBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtiny_tds:ERROR:Failedtobuildgemnativeextension.完整日志如下:/System
我正在使用PostgreSQL9.1.3(x86_64-pc-linux-gnu上的PostgreSQL9.1.3,由gcc-4.6.real(Ubuntu/Linaro4.6.1-9ubuntu3)4.6.1,64位编译)和在ubuntu11.10上运行3.2.2或3.2.1。现在,我可以使用以下命令连接PostgreSQLsupostgres输入密码我可以看到postgres=#我将以下详细信息放在我的config/database.yml中并执行“railsdb”,它工作正常。开发:adapter:postgresqlencoding:utf8reconnect:falsedat
如何解决这个错误:$rvminstall1.9.3Searchingforbinaryrubies,thismighttakesometime.Nobinaryrubiesavailablefor:osx/10.9/x86_64/ruby-1.9.3-p547.Continuingwithcompilation.Pleaseread'rvmhelpmount'togetmoreinformationonbinaryrubies.Checkingrequirementsforosx.Certificatesin'/usr/local/etc/openssl/cert.pem'arealr
3月26日,映宇宙(HK:03700,即“映客”)发布截至2022年12月31日的2022年度业绩财务报告。财报显示,映宇宙2022年的总营收为63.19亿元,较2021年同期的91.76亿元下降31.1%。2022年,映宇宙的经营亏损为4698.7万元,2021年同期则为净利润4.57亿元;期内亏损(净亏损)为1.68亿元,2021年同期的净利润为4.33亿元;非国际财务报告准则经调整净利润为3.88亿元,2021年同期为4.82亿元,同比下降19.6%。 映宇宙在财报中表示,收入减少主要是由于行业竞争加剧,该集团对旗下产品采取更为谨慎的运营策略以应对市场变化。不过,映宇宙的毛利率则有所提升
下载微PE工具箱进入官网下载微PE工具箱-下载 安装好后,打开微PE工具箱客户端,选择安装PE到U盘 PE壁纸可选择自己喜欢的壁纸,勾选上包含DOS工具箱,个性化盘符图标 下载原版系统进入网站下载镜像NEXT,ITELLYOU如果没有账号,注册一下就好进入选择开始使用选择win10 这里我们选择消费者版,用迅雷把BT种子下载下来 下面的两个盘符,是PE工具箱安装进U盘后,分成的盘符,注意EFI的盘符,这里面不能删东西,也不能添东西,另一个盘符可以当做正常的U盘空间使用,我们现在需要把下载下来的景象文件复制到正常的U盘空间中去 这个时候我们的系统U盘就只做好了 安装系统我们将U盘插入电脑,开机,