Java笔试强训——Day01

发布于:2022-10-14 ⋅ 阅读:(516) ⋅ 点赞:(0)

一、组队竞赛

1、题目链接组队竞赛icon-default.png?t=M85Bhttps://www.nowcoder.com/questionTerminal/6736cc3ffd1444a4a0057dee89be789b?orderByHotValue=1&page=1&onlyReference=false

2、解题思路

首先把输入的数据放在一个整型数arrry组里面

然后使用Arrays.sort(array)方法把数组按从小到大排序

排序后我们会得到一个有序得数组

然后我们取第一个数据和倒数后两个数据组成一队,这样就保证了整个数组里面第二大的数据会被选中

最后依次按照上面进行分组 ,就可以得出一个公式:array[array.length-(2*(i+1))],i小于队伍的个数及小于n

举个例子:1,2,5,5,5,8

6个数据按照题意可以分为2组,按照上述思路则可以分为1,5,8一组,2,5,5一组

因此0<=i<2,再按照上面的公式可以得到数据5和5,也就是每一个队伍中第二大得数据,再将得到的数据相加后输出

3、代码详情

import java.util.Scanner;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()){
            int n=scanner.nextInt();
            int[] array = new int[3*n];
            for (int i = 0; i <3*n ; i++) {
                array[i] =scanner.nextInt();
            }
            long sum=0;
            Arrays.sort(array);
            for (int i = 0; i <n ; i++) {
                sum=sum+array[array.length-(2*(i+1))];
            }
            System.out.println(sum);
        }

    }
}

 

二、 删除公共字符

1、题目链接

删除公共字符icon-default.png?t=M85Bhttps://www.nowcoder.com/practice/f0db4c36573d459cae44ac90b90c6212?tpId=85&&tqId=29868&rp=1&ru=/activity/oj&qru=/ta/2017test/question-ranking

2、解题思路

输入两个字符串str1,str2,实例化一个HashMap

遍历字符str2,把每个字母出现得次数存放在hashmap中,如果该字母没有出现过测默认为null

遍历字符串str1,把字符串str1中出现得每个字母与hasmap中该字母出现的次数进行对比如果出现得次数是null则打印

3、代码详情

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
        public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        String str1=scanner.nextLine();
        String str2=scanner.nextLine();

        HashMap<Character,Integer> hashMap=new HashMap<>();

        for (int i = 0; i <str2.length() ; i++) {
            if (hashMap.get(str2.charAt(i))==null){
                hashMap.put(str2.charAt(i),1);
            }else {
                hashMap.put(str2.charAt(i),hashMap.get(str2.charAt(i))+1);
            }
        }

        String ret="";

        for (int i = 0; i <str1.length() ; i++) {
            if (hashMap.get(str1.charAt(i))==null){
                ret=ret+str1.charAt(i);
            }
        }
        System.out.println(ret);
    }
}

本文含有隐藏内容,请 开通VIP 后查看