华为机试2022试卷 三道题

1. 最大值  179. 最大数  (leetcode)

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。

注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。

  

输入nums = [10,2]
输出:"210"

  解法:自定义排序,利用比较传递性 

Class  Solution{
   public  String  largestNumber(int[] nums){
    int n =nums.length();
     
    String[] ss =new String[n];
    // 转为字符
    for(int i=0;i

2.最少步数  

数组最大100个成员 ,从第一个成员,走到数组最后一个成员,使用的最后少步数 第一步 1<= 第一步

例如: 7 5 9 4 2 6 8 3 5 4 3 9  输出 2 

    从第一个元素a[0]开始跳2步到a[2]=9,接下来跳9步到最后一个元素9.所跳的步数是2

60% 用例:

public class Main2 {
    //最大100个 ,走到数组最后一个成员,使用的最后少步数
    //第一步 1<= 第一步 list = new ArrayList();
        String line =in.nextLine();
        String[] lines =line.split(" ");
        int[] nums = new int[lines.length];
        for (int i = 0; i  nums.length - 1) {
                    ret[i] = -1;
                } else if (index == nums.length - 1) {
                    ret[i] = count;
                } else {

                }
            }

        }
        int max=Integer.MIN_VALUE;
        for (int i = 1; i max){
                max=ret[i];
            }
        }
        if(max==-1){
            System.out.println(-1);
        }else{
            System.out.println(max);
        }
    }
}

45. 跳跃游戏 II

难度中等

给你一个非负整数数组 nums ,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

假设你总是可以到达数组的最后一个位置。

第3题 :骰子翻转

 前后左右上下翻转,打印出最后状态:

 华为机试2022试卷 三道题_第1张图片

 输入:LR   ,左转--> 右转

 输出:123456

100%

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main3 {
    /**
     * 初始状态: 123456
     * 左转  L: 563421--452310
     * 右转  R:653412--0123456
     * 前转  F:125643--014532
     * 后传  B:126534-- 015423
     * 上转  A:431256--320145
     * 下转  C:342156--231045
     *
     *
     */

   static int[][]  index={
            {4,5,2,3,1,0},// L
            {5,4,2,3,0,1},//R
            {0,1,4,5,3,2},//F
            {0,1,5,4,2,3},//B
            {3,2,0,1,4,5},//A
            {2,3,1,0,4,5}//C
    };

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        List list = new ArrayList();
        String line =in.nextLine();
        char[] chs =line.toCharArray();
        int[] num= {1,2,3,4,5,6};
        for (int i = 0; i 

你可能感兴趣的:(算法数据结构学习笔记,牛客网题,华为,p2p,linq)