【2021】微众银行校招技术类A卷

 

 

 

tcp、udp都是传输层协议

 

 

 隔离性:不同事物互不干扰

 

 

 编译看左,运行看右

 

 

 

 

Class.getFields():获取该类及其父类的所有public字段

Class.getDeclareFields():获取该类的所有字段,不包括父类字段

将权限设置为true了,每个属性的名称都可以访问到

 

 

 

 

 


 

1.成员变量的名字可以和局部变量名字相同。java采用局部优先的思想,当成员变量和局部变量名字相同时,遵循就近原则,优先使用局部变量。在实例方法中出现变量名相同,想要调用成员变量,可以用this调用。

2.方法中的形参名和局部变量名不能相同,会出现重复定义的问题

3.成员变量有默认初始化值,局部变量需要自定义默认初始化值。

 

 

 

有磁铁,则越靠右的列数目越多。对数组升序排序就行。

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

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNextInt()) { // 注意 while 处理多个 case
        //     int a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }
        int m= in.nextInt();
        int[] nums = new int[m];
        for(int i=0;i<m;i++)
            nums[i] = in.nextInt();
        Arrays.sort(nums);
        for(int i=0;i<m;i++)
            System.out.print(nums[i]+" ");
    }
}

 

 计算好顺时针、逆时针、水平翻转的坐标变换;顺/逆时针四次回到原位、水平翻转两次回到原位

注意 顺/逆时针旋转后,行数和列数交换了

public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int x,y,z,n,m,q;
        x = in.nextInt();//顺时针旋转次数
        y = in.nextInt();//水平翻转次数
        z = in.nextInt();//逆时针旋转次数
        n = in.nextInt();//行数
        m = in.nextInt();//列数
        q = in.nextInt();//询问次数
        // 顺/逆时针旋转四次是一轮;水平翻转两次是一轮
        x %= 4;
        y %= 2;
        z %= 4;
        while (q > 0){
            int a = in.nextInt()-1;
            int b = in.nextInt()-1;
            int newa=a,newb=b;//新坐标初始化
            int row=n,col=m;//注意旋转后行列数会变
            // 顺时针x次
            for (int i=0;i<x;i++){
                newa = b;
                newb = row-a-1;
                a = newa;
                b = newb;
                if (row == n){
                    row = m;
                    col = n;
                }else {
                    row = n;
                    col = m;
                }
            }
            // 水平翻转
            if (y == 1){
                newa = a;
                newb = col-1-b;
                b = newb;
            }

            // 逆时针旋转z次
            for (int i=0;i<z;i++){
                newa = col-1-b;
                newb = a;
                a = newa;
                b = newb;
                if (row == n){
                    row = m;
                    col = n;
                }else {
                    row = n;
                    col = m;
                }
            }
            a++;
            b++;
            System.out.println(a+" "+b);
            q--;
        }
    }

 

 这个问题用三重循环超时了;改进了一下还是超时了,还没解决。。。

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] nums = new int[n];
        for (int i=0;i<n;i++){
            nums[i] = in.nextInt();
        }
        if (n<=2){
            System.out.println("0");
            return;
        }
        
        int x = 0;
        for (int i=1;i<n-1;i++){
            x += getCount(nums,i);
        }
        System.out.println(x);
    }
    // 输入数组元素,元素下标
    private static int getCount(int[] nums,int i){
        int left = 0,right = 0;
        for (int j = 0;j < i;j++){
            if (nums[j]<=nums[i])
                left++;
        }
        for (int j=i+1;j<nums.length;j++){
            if (nums[j]>=nums[i])
                right++;
        }
        return left*right;

    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值