前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HackerRankPro

HackerRankPro

原创
作者头像
doc2
修改2024-09-25 17:43:17
840
修改2024-09-25 17:43:17
举报
文章被收录于专栏:Java技术
代码语言: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;
                }
            }
        }
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档