HackerRankPro

2024-09-25 17:43:17 浏览数 (1)

代码语言:txt复制
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;

import static javafx.scene.input.KeyCode.F;

public class HackerRankPro {
    public static void main(String[] args) {
        ArrayList<ArrayList<Integer>> arrayLists = new ArrayList<>();
        ArrayList<Integer> integers = new ArrayList<>();
        integers.add(1);
        integers.add(2);
        integers.add(3);
        arrayLists.add(integers);
        ArrayList<Integer> integers1 = new ArrayList<>();
        integers1.add(4);
        integers1.add(5);
        integers1.add(6);
        arrayLists.add(integers1);
        ArrayList<Integer> integers2 = new ArrayList<>();
        integers2.add(7);
        integers2.add(8);
        integers2.add(9);
        arrayLists.add(integers2);
//        Integer i = diagonalDiferrence(arrayLists);
//        System.out.println(i);
//        squareMultiplyOutput(10);
        ArrayList<Integer> integers3 = new ArrayList<>();
        integers3.add(-4);
        integers3.add(3);
        integers3.add(-9);
        integers3.add(0);
        integers3.add(4);
        integers3.add(1);
//        plusMinus(integers3);
        staircase(4);
    }

    /**
     * 获取方形矩阵两串对角线数字之和的差值
     *
     * 1 2 3
     * 4 5 6
     * 7 8 9
     *
     * 1 5 9=15;
     * 3 5 7=15;
     * 15-15=0;
     * @param arr
     * @return
     */
    public static Integer diagonalDiferrence(ArrayList<ArrayList<Integer>> arr){
        if(arr==null){
            return null;
        }
        if (arr.isEmpty()){
            return null;
        }
        for (ArrayList<Integer> integers : arr) {
            for (Integer integer : integers) {
                if (integer<-100 || integer > 100){
                    return null;
                }
            }
        }
        int count=0;
        ArrayList<Integer> integerArrayList = new ArrayList<>();
        for (int i = 0; i < arr.size(); i  ) {
            ArrayList<Integer> integerList = arr.get(i);
            for (int i1 = 0; i1 < integerList.size(); i1  ) {
                if(count==i1){
                    Integer i2 = integerList.get(i1);
                    integerArrayList.add(i2);
                    break;
                }else if (integerArrayList.size()==count){
                    if (i1==(count-1)){
                        Integer i2 = integerList.get(count);
                        integerArrayList.add(i2);
                        break;
                    }else {
                        continue;
                    }
                }else {
                    break;
                }
            }
            count  ;
        }
        System.out.println(integerArrayList);
        int count1=0;
        ArrayList<Integer> integerArrayList1 = new ArrayList<>();
        for (int i = 0; i < arr.size(); i  ) {
            List<Integer> integerList = arr.get(i);
            int reverseIndex=integerList.size()-1;
            for (int i1 = integerList.size()-1; i1 >=0 ; i1--) {
                if(count1==(integerList.size()-i1-1)){
                    Integer i2 = integerList.get(i1);
                    integerArrayList1.add(i2);
                    break;
                }else if (integerArrayList1.size()==count1){
                    if (i1==(integerList.size()-count1-1)){
                        Integer i2 = integerList.get(reverseIndex--);
                        integerArrayList1.add(i2);
                        break;
                    }else {
                        continue;
                    }
                }else {
                    break;
                }
            }
            count1  ;
        }
        System.out.println(integerArrayList1);
        int sum=0;
        for (Integer integer : integerArrayList) {
            sum =integer;
        }
        int sum1=0;
        for (Integer integer : integerArrayList1) {
            sum1 =integer;
        }
        int minersVal=sum-sum1;
        if (minersVal<0){
            int i = sum1 - sum;
            return i;
        }
        return minersVal;
    }

    public static void squareMultiplyOutput(int num){
        if (num<2 || num >20){
            return;
        }
        for (int i = 0; i < 10; i  ) {
            int index=i 1;
            int i1 = num * index;
            System.out.println(" " num " *" " "  index " " "= " "" i1 "");
        }
    }

    public static void plusMinus(List<Integer> arr){
        if (arr==null){
            return;
        }
        if (arr.isEmpty()){
            return;
        }
        if (arr.size()<0 || arr.size()>100){
            return;
        }
        arr.forEach(e->{
            if (e<-100 || e>100){
                return;
            }
        });
        ArrayList<Integer> negtiveIntegers = new ArrayList<>();
        ArrayList<Integer> positiveIntegers = new ArrayList<>();
        ArrayList<Integer> zeroIntegers = new ArrayList<>();
        for (Integer integer : arr) {
            if (integer<0){
                negtiveIntegers.add(integer);
            }
            else if (integer>0){
                positiveIntegers.add(integer);
            }else {
                zeroIntegers.add(integer);
            }
        }
        int size = zeroIntegers.size();
        String s = size   ".000000";
        BigDecimal bigDecimal5 = new BigDecimal(s);
        bigDecimal5.setScale(6,RoundingMode.HALF_UP);
        int size1 = arr.size();
        String s1 = size1   ".000000";
        BigDecimal bigDecimal = new BigDecimal(s1);
        bigDecimal.setScale(6,RoundingMode.HALF_UP);
        BigDecimal divide = bigDecimal5.divide(bigDecimal,6,RoundingMode.HALF_UP);
        int size2 = positiveIntegers.size();
        String s2 = size2   ".000000";
        BigDecimal bigDecimal1 = new BigDecimal(s2);
        bigDecimal1.setScale(6,RoundingMode.HALF_UP);
        BigDecimal divide1 = bigDecimal1.divide(bigDecimal, 6, RoundingMode.HALF_UP);
        int size3 = negtiveIntegers.size();
        String s3 = size3   ".000000";
        BigDecimal bigDecimal2 = new BigDecimal(s3);
        BigDecimal divide2 = bigDecimal2.divide(bigDecimal, 6, RoundingMode.HALF_UP);
        System.out.println(divide1);
        System.out.println(divide2);
        System.out.println(divide);
    }

    public static void staircase(int n){
        if(n<=0 || n>100){
            return;
        }
        int count=0;
        int N=n;
        int index=0;
        for (int i = n-1; i >= 0; i--) {
            if (count<(n-1)){
                System.out.print(" ");
                count  ;
                continue;
            }
            count=0;
            n--;
            for (int j = 0; j < n; j  ) {
                if (index<(N-n)){
                    System.out.print("#");
                    index  ;
                    continue;
                }
            }
        }
    }
}

0 人点赞