• 刷题日记【第十五篇】-笔试必刷题【有假币+求正数数组的最小不可组成和+最难的问题+因子个数】


    1.实例方法需要通过super来调用超类中的实例方法;实例方法需要通过类名称来调用超类的类方法;实例方法需要向下转型才能调用子类的实例方法;实例方法可以直接调用本类的实例方法。

    在这里插入图片描述

    2.HashSet子类依靠【hashCode();equals()】方法区分重复元素.

    在这里插入图片描述

    HashSet内部使用Map保存数据,即将HashSet的数据作为Map的key值保存,这也是HashSet中元素不能重复的原因。而Map中保存key值前,会去判断当前Map中是否含有该key对象,内部是先通过key的hashCode,确定有相同的hashCode之后,再通过equals方法判断是否相同。

    3.编程题【有假币】

    在这里插入图片描述
    **向上取整方法 Math.ceil() **

    // write your code here
    import java.util.*;
    public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            while(sc.hasNext()){
                int n = sc.nextInt();
                if(n==0){
                    break;
                }
                int count = 0;
                while(n>=2){
                    n = (int)Math.ceil((double)n/3);
                    count++;
                }
                System.out.println(count);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    4.编程题【求正数数组的最小不可组成和】

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

    import java.util.*;
    public class Solution {
    	/**
    	 *	正数数组中的最小不可组成和
    	 *	输入:正数数组arr
    	 *	返回:正数数组中的最小不可组成和
    	 */
    	public int getFirstUnFormedNum(int[] arr) {
            int min = Integer.MAX_VALUE;
            int max = 0;
            for (int i = 0; i < arr.length; i++) {
                max += arr[i];
                min = Math.min(min, arr[i]);
            }
            boolean res[] = new boolean[max + 1];
            res[0] = true; 
            for (int i = 0; i < arr.length; i++) {
                for (int j = max; j >= arr[i]; j--) {
                    res[j] = res[j - arr[i]] || res[j];
                }
            }
            for (int i = min; i < res.length; i++) {
                if (!res[i])
                    return i;
            }
            return max + 1;
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    5.反射:getMethod与getDeclaredMethod的区别

    getDeclaredMethods获取的是类自身声明的方法,包含public、protected和private方法。
    getMethods获取的是类的所有public方法,包括自身的和从父类、接口继承的。

    在这里插入图片描述

    6.自动装箱/装箱 自动拆箱/拆箱

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

    7.字符串的不可变性:字符串的内容一旦声明,无法修改

    方法中修改字符串的值,并不影响字符串最初的值,只是创建一个临时变量,临时变量指向新的空间。

    包访问权限:不需要如何修饰符的访问权限

    在这里插入图片描述

    8.编程题【最难的问题】

    在这里插入图片描述
    用三目运算符使代码更加简洁明了。

    import java.util.*;
    
    public class Main{
        public static void main(String[] args){
            Scanner scanner= new Scanner(System.in);
            while(scanner.hasNext()){
                String str = scanner.nextLine();
                StringBuilder sb = new StringBuilder();
                for(int i =0;i<str.length();i++){
                    if(str.charAt(i)==' '){
                        sb.append(' ');
                    }else{
                        sb.append((char)(str.charAt(i)>'E'?str.charAt(i)-5:str.charAt(i)+21));
                    }
                }
                System.out.println(sb);
                
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    9.编程题【因子个数】

    在这里插入图片描述

    import java.util.*;
    public class Main{
        public static void main(String[] args){
            Scanner scanner = new Scanner(System.in);
            while(scanner.hasNext()){
                int n = scanner.nextInt();
                int count = 0;
                for(int i =2;i<Math.sqrt(n);i++){
                    if(n%i==0){
                        while(n%i==0){
                            n=n/i;
                        }
                        count++;
                    }
                }
                if(n!=1){
                    count++;
                }
                System.out.println(count);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    JOSEF 同步检查继电器 JT-1 额定电压100V 柜内固定安装,板前接线
    VUE学习笔记-1
    【数据库】Redis
    Blazor实战——Known框架增删改查导
    数据结构~~~~ [队列] ~~~~
    GraphBase基础原理
    Java后端八股文之Mysql
    科目二倒车入库
    分享68个ASP.NET源码总有一个是你想要的
    S5PV210裸机(五):定时器
  • 原文地址:https://blog.csdn.net/weixin_53939785/article/details/127917070