(牛客网)华为机试(二)

2023-11-16

(牛客网)华为机试题集解答

在解题前先分享一波oj刷题的固定格式代码,方便输入时使用

import java.util.*;
import java.io.*;
public class Main{   //一定要使用Main作为类名
    public static void main(String args[]){
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            
        }
    }
}

如果是使用C++的话:

#include<bits/stdc++.h> //万能头文件,超级好用
using namespace std;
int main(){
    int num;
    while(scanf("%d",&num)!=EOF){  //这里用cin也可以,个人喜好scanf(),因为一个有趣的手势(哈哈哈)       
    }
}

第五题 HJ104 字符串分割

题目要求在这里插入图片描述在这里插入图片描述在这里插入图片描述

思路:

直接对输入的数据进行一次判断:输入的字符串长度是否是8的倍数,如果是8的倍数就不管,如果不是就直接在字符串后面补上缺少的零的个数强迫它变成8的倍数,然后使用substring函数进行截取字符串,每8个输出一行即可。如果是使用python解答的化就更简单,因为可以进行切片操作。

import java.util.Scanner;
public class Main{
    public static void main(String args[]){
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            int n=scanner.nextInt();
            for(int i=0;i<n;i++){
                String words = scanner.next();
                while(words.length()%8!=0){
                    words +="0";
                }
                for(int j=0;j<words.length();j+=8){
                    System.out.println(words.substring(j,j+8));
                }
            }
        }
    }
}

如果是python的化就这样即可(python非本人写)

while True:
    try:
        a= int(input())
        for i in range(a):
            s=input()
            while len(s)>8:
                print(s[:8])
                s=s[8:]
            print(s.ljust(8,"0"))
    except:
        break

第六题:HJ103 Redraiment的走法

题目要求

在这里插入图片描述在这里插入图片描述

思路:

开始看到这道题目一脸懵逼,都没读懂题意啥意思,然后仔细看一遍发现其本质就是早最长上升子序列。所以这道题目就变得简单了起来,在没有学过动态规划之前,做起来肯定就是想直接暴力解决了,但这类题目基本上暴力都会超时,所以我们要学会使用空间换时间。先开一个数组来记录一部分数据,边找变记录。使用这个数组来记录每一个数字当前位置所能出现的最长递增子序列长度,使用迭代的思路来求解长度,具体的其动态规划的思路如下:
例如:给定一个长度为6的数组A{6, 2, 5, 1,4, 5},则其最长的单调递增子序列为{1,4,5}或者{2,4,5},长度为3。
记d[i]为以任意一个A[i]为末尾元素组成的最长递增子序列的长度,找出所有位于i之前且比A[i]小的元素A[j],此时可出现两种情况:
(1)若找到,例如i = 2,此时A[i] = 5,比A[i]小的元素为A[1] = 2,取所有比A[i]小的元素中A[j]中,对应的d[j]最大的加1,即d[i] = max{ d[j] },其中j < i 且 A[j] < A[i];
(2)若没有找到,例如i = 3,此时A[3] = 1,i之前不存在比1小的元素,此时A[3] = 1独自构成一个递增子序列,d[i] = 1。
当i = 0时,此时A[0] = 6,只有一个元素独自构成子序列,此时d[0] = 1;
当i = 1时,此时A[1] = 2,i = 3之前不存在比1小的元素,即d[1] = d[0] =1;
当i = 2时,此时A[2] = 5,比A[2]小的元素分别为 A[1] = 2,取对应的d[j]最大的d[1] = 1,即i = 2时对应最长递增子序列长度应为d[2] = d[1] + 1 = 2;
当i = 3时,此时A[3] = 1,i = 3 之前不存在比1小的元素, 即d[3] = 1;
当i = 4时,此时A[4] = 4,比A[4]小的元素为2和1,有两个元素,取对应的d[j]最大的d[1]=d[3]=1,即i = 2时对应最长递增子序列长度应为d[4] = d[1] + 1 = 2;
当i = 5时,此时A[5] = 5,前5个元素有1,2,4,,取对应最大的d[j]为当j = 4时,此时d[4] = 2,即i = 5时对应的最长的递增子序列长度为d[5] = d[4] + 1 = 3。
最后再遍历所开的数组,找出最大的数字即为最长递增子序列,听起来是不是很简单呢?为方便写代码我们利用java自带的Math.max()函数提高效率。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNextInt()){
            int count = scanner.nextInt();
            int[] A = new int[count];
            for(int i=0;i<count;i++){
                A[i]= scanner.nextInt();
            }
              
            System.out.println(good(count, A));  //dp函数部分
        }
    }
        public static int good(int a,int[] b){
        int[] dp = new int[a];
        int max=1;
        for(int i=0;i<a;i++){
            dp[i]=1;
            for(int j=0;j<i;j++){
                if(b[j]<b[i]){
                dp[i]=Math.max(dp[i],dp[j]+1);
                }
            }
            max=Math.max(dp[i],max);
        }
        return max;
    }
}

由于最近家里这边暴雨原因,经常性的发生停电,所以今天就刷了两题,争取每天两题到四题,检查就是胜利,刚开始学着刷刷上机题,大家一起努力!!!!

good good studym,day day up! (study hard, improve every day)

预知后事,请听下回分解!!!!

下一篇地址:(牛客网)华为机试(三)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(牛客网)华为机试(二) 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 在 Java 中克隆对象 [3 个问题]

    这样做会调用Asub的clone方法吗 或者Asub深度克隆是否正确 如果没有的话 有没有办法通过这种方法对Asub进行深度克隆呢 abstract class Top extends TopMost protected Object cl
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • VS Code Material Icon Theme插件设置自定义文件夹图标关联

    VS Code Material Icon Theme插件设置自定义文件夹图标关联 方法与分析 自定义文件夹图片命名和位置如下 vscode extensions pkief material icon theme 4 5 0 icons
  • 程序的基本结构

    程序的基本结构 1 顺序结构 2 选择结构 选择结构如下图所示 当条件成立时 执行模块A否则执行模块B 3 循环结构 循环结构又两种形式当型循环和直道型循环 当型循环 先判断条件 条件成立就反复执行程序模块 当条件不成立时结束循环 当型循环
  • Django视图类View源码分析

    Django视图类View源码分析 一 视图函数 django中的视图函数 就是视图功能由函数实现 响应 或渲染模板后返回HTML 或直接返回JSON数据 参数 视图函数的第一个参数必须是request对象 文本响应 from django
  • 纯干货:接口自动化测试的思考和技术实现

    一 思考 什么是自动化测试 自动化测试是把人为驱动转换成计算机驱的测试行为 人对于接口的测试行为 第一步 理解业务需求 一般来说可以从需求理解接口的行为和描述 行为 当什么情况 做什么操作 发生什么事情 描述 情况是什么 操作是什么等 第二
  • Rust- 类型系统

    The type system in Rust is one of its core features supporting a range of different types and providing a powerful syste
  • 为什么String要被设置为不可变类?百日百题(2/100)

    问题引入 我们学习了String的数据类型 知道了String类型一旦生成就不会再发生改变 这就是他的不可变性 也就意味着每次修改都会产生一个新的String变量 对性能影响较大 StringBuilder和StringBuffer产生的对
  • [Hyperf]源码阅读:验证器验证规则

    hyperf validation src Concerns ValidatesAttributes php
  • 单向链表的Java实现,以及相关函数。

    如上图所示就是单向链表的示意图 下面就是Java实现单向链表的基本过程与源码 可以跑起来的 1 创建一个节点类 package com wpl snglelink public class Node public Object getDat
  • c++_函数返回值,引用&作为函数返回值

    catalog 函数返回值 返回值是 const T 返回值的类型是 T 返回的对象是 局部对象 实现原理 返回的对象是 全局对象 实例 函数返回值 返回值是 const T ST operator ST a ST b return ST
  • 每日一题——求解连通分量个数

    题目描述 从键盘接收图的顶点集 关系集 创建无向图 第一行依次输入图的顶点个数n 关系个数k 以空格隔开 顶点个数 lt 20 第二行依次输入顶点值 类型为字符 接下去有k行 每行为两个字符 u 和 v 表示节点u 和 v 连通 格式为 u
  • 麦克输入

    如图所示 单端输入只有一个输入引脚ADCIN 使用公共地GND作为电路的返回端 ADC的采样值 ADCIN电压 GND的电压 0V 这种输入方式优点就是简单 缺点是如果vin受到干扰 由于GND电位始终是0V 所以最终ADC的采样值也会随着
  • Ros noetic 机器人坐标记录运动路径和发布 实战教程(B)

    前言 网上记录Path的写入文件看了一下还挺多的 有用yaml作为载体文件 也有用csv文件的路径信息 也有用txt来记录当前生成的路径信息 载体不重要 反正都是记录的方式 本文主要按yaml的方式写入 本文将撰写csv方式的文件写入格式
  • mysql查询每年每个月的数据_mysql 查询一年中每个月份的数据量

    这个是用mid 函数 截取字符串 mysql gt select count as 数量 mid time 1 7 as month from my add where time between 2015 01 01 00 00 00 an
  • 华为OD机试真题-字符串解密 【2023.Q1】

    题目内容 题目描述 有两个字符串string1和string2 string1是一个被加扰的字符串 小写英文字母 a z 和数字字符 0 9 组成 而加扰字符串由 0 9 a f 组成 string1里面可能包含0个或多个加扰子串 剩下可能
  • Dell服务器IDRAC管理界面配置NTP时间同步

    登录idrac管理界面 1 点击 iDRAC设置 2 在属性里面点击 设置 3 时区和NTP 4 在NTP1这项填写NTP的服务器地址5 右下角点击 应用 过几分钟就生效了
  • 回归指令_SWAP字节交换指令详解

    说明 本篇文章是为下一篇文章 在触摸屏上演示7段数码管指令而预先讲解的一个指令 正文 字节交换指令应该算一个比较重要的指令 特别PLC要和一些HMI设备通讯 在HMI上录入数据的时候 就有可能需要经常使用这个指令 来看一下西门子200PLC
  • 基于二叉树的算术表达式计算与实现

    非常有趣的一道题 代码参考 https blog csdn net over786 article details 17395567 把一个正常的表达式写成这个样子咯 问题的难点在于整数有多位 而且你要判断好哪个符号作为根 比如5 3 4
  • 华为OD机试 Python 限载货物数最小值

    描述 在火车站旁的货运站 小明负责调度2K辆中转车 其中K辆用于干货 K辆用于湿货 每批到站的货物来自不同的供货商 需要按照顺序装入中转车 注意 一个供货商的货物只能装在一辆车上 不能分开 但是 一辆车可以放多个供货商的货物 问题是 要让所
  • 检测洛达芯片的软件_洛达1562A与1536u与杰里有哪些区别?购买前10条须知

    相信大家应该对AirPodspro已经不陌生了 那么对于廉价版本的华强北AirPodspro有多少了解呢 芯片 洛达 中科蓝讯 杰里 恒炫 惴昱 等等 壳料 彩创壳 原厂彩创壳 资江壳 高美特壳料等等 喇叭也有好多种喇叭 至于大家为什么在各
  • (牛客网)华为机试(二)

    牛客网 华为机试题集解答 在解题前先分享一波oj刷题的固定格式代码 方便输入时使用 import java util import java io public class Main 一定要使用Main作为类名 public static