• 2022 9.4 小红书笔试


    一. ac

    题目:

    序列生成需要一个基础序列A,这个序列由n个 不大于100的数字组成,同时给定镜像复制次数m。
    然后对于A进行m次镜像复制,例如序列A={1,2,3},则一次镜像复制后得到的序列是{1,2,3,3,2,1},两次镜像复制得到的序列是B={1,2,3,3,2,1,1,2,3,3,2,1} 。

    现在给出你生成一个序列所需要的参数,请你计算该序列的第k位是多少。

    输入第一行包含正整数个数n,镜像次数m,k;
    输入第二行包含n个正整数;

    3 3 10
    1 2 3
    输出:3

    思路:

    数学题,发现规律:例如1 2 3 ,不管镜像多少次,都是 1 2 3 3 2 1 一对的整数倍;
    所以构造一个数组tmp用来存一对, tmp的length即为n*2;
    用k 除以tmp的lenth,即取出重复的很多对,余数就是 k 在一个tmp中的索引;
    由于索引从0开始,所以k需要减1;

    import java.util.*;
    public class Main{
        public static void main(String[] args){
            Scanner in=new Scanner(System.in);
            int n=in.nextInt();
            int m=in.nextInt();
            int k=in.nextInt();
            int[] nums=new int[n];
            for(int i=0;i<n;i++){
                nums[i]=in.nextInt();
            }
            //
            int[] tmp=new int[n*2];
            for(int i=0;i<n;i++){
                tmp[i]=nums[i];
            }
            int j=n;
            for(int i=n-1;i>=0;i--){
                tmp[j++]=nums[i];
            }
            int c=n*2;
            int lastindex=k%c-1;
            System.out.println(tmp[lastindex]);
        }
    }
    
    • 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

    二. 通过0.81

    题目:

    给定n个整数a1, a2, a3 … an。每次操作可以选择其中一个数,
    并将这个数加上1或者减去1。小红非常喜欢7这个数,他想知道至少需要多少次操作可以使这n个数的乘积为7?
    1 ≤ n ≤ 30000,-109 ≤ ai ≤ 109

    样例说明
    5
    -6 0 2 -2 3
    输出6

    第一次操作将a1减1,得到[-7,0,2,-2,3]
    第二次操作将a4加1,得到[-7,0,2,-1,3]
    第三次操作将a3减1,得到[-7,0,1,-1,3]
    第四次操作将a5减1,得到[-7,0,1,-1,2]
    第五次操作将a5减1,得到[-7,0,1,-1,1]
    第六次操作将a2加1,得到[-7,1,1,-1,1],此时所有数的乘积为7;

    思路:

    首先要乘积为7,那么元素必然有一个7/-7,然后其他元素都是1/-1 ;
    那么先选取数组中绝对值最大的数max,让max变成7,其他的元素变成1即可,注意这里让所有元素取Math.abs再和 7或者1比较,即得到差值也就是需要操作的次数!
    由于最后必须是正的7,用od来记录正数还是负数,如果是负数,则结果要+2(即由-1变+1);

    现在想起来,特殊情况,即当只有一个元素的时候,奇数+2就不对了! 这里改一下,应该能过更多!

    import java.util.*;
    public class Main{
        public static void main(String[] args){
            Scanner in=new Scanner(System.in);
            int n=in.nextInt();
            int[] nums=new int[n];
            int od=0;//奇偶
            for(int i=0;i<n;i++){
                nums[i]=in.nextInt();
            }
            //找到和7/-7差距最小的
            //累加其他的和1/-1差值
            int index=0;
            int[] res=new int[n];
            int max=Integer.MIN_VALUE;
            //找最大值
            for(int i=0;i<n;i++){
                if(max<Math.abs(nums[i]) ){
                    max=Math.abs(nums[i]); //正数
                    index=i;
                }
            }
            if(nums[index]<0){
                od++; //如果max小于0,od+1;
            }
            res[index]=Math.abs(max-7);
            // 除了index以外的,绝对值和1的差距
            for(int i=0;i<n;i++){
                if(i==index){ //跳过max
                    continue;
                }
                if(nums[i]<0){
                    od++; //记录奇偶数
                }
                res[i]=Math.abs(Math.abs(nums[i])-1);
            }
            int r=0;
            for(int i=0;i<n;i++){
                r=r+res[i];
            }
            if(od%2==0){ //偶数
                System.out.println(r);
            }else{ //奇数
                System.out.println(r+2);
            }
        }
    }
    
    
    • 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
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
  • 相关阅读:
    常用数据集格式介绍,自制,比例划分,图片集重组及其转换————COCO介绍(持续更新)
    【GPU高性能编程CUDA实战】中的头文件下载
    程序性能分析
    弘辽科技:网店如何补流量?需要有什么准备?
    文件上传OSS实现
    基于LUT查找表方法的图像gamma校正算法FPGA实现,包括tb测试文件和MATLAB辅助验证
    【Ubuntu同步系统时间】
    java封装,继承,多态
    硬件安全与机器学习的结合
    蓝桥等考Python组别十三级004
  • 原文地址:https://blog.csdn.net/Swofford/article/details/126692432