栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java打卡day 21 ①洗牌(数组及数学关系)②MP3光标位置(数组+穷举)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java打卡day 21 ①洗牌(数组及数学关系)②MP3光标位置(数组+穷举)

目录

①洗牌

②MP3光标位置

①洗牌

刷题链接:洗牌_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/5a0a2c7e431e4fbbbb1ff32ac6e8dfa0?tpId=85&&tqId=29848&rp=1&ru=/activity/oj&qru=/ta/2017test/question-ranking

import java.util.*;
public class Main{
     public static void playCard(int[]cards,int n,int k){
         //一共洗k次牌
         for(int i=0;i 

②MP3光标位置

刷题链接:MP3光标位置_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15?tpId=37&&tqId=21287&rp=1&ru=/activity/oj&qru=/ta/huawei/question-ranking

import java.util.*;
public class Main {
    public static void mouseMove(String numstr, String orderStr) {
        //歌曲的数量为n
        int n = Integer.parseInt(numstr);
        //将指令存入数组当中
        char[]order = orderStr.toCharArray();
        //定义鼠标所在的位置,初始为1代表鼠标在列表第一位
        int mouse = 1;
        //定义歌曲列表所在的起始位置
        int first = 1;
        //当歌曲总数小于等于4时,
        if (n <= 4) {
            //for循环遍历指令
            for (int i = 0; i < order.length; i++) {
                //光标在第一首歌曲上时,按Up键光标挪到最后一首歌曲
                if (mouse == 1 && order[i] == 'U') {
                    mouse = n;
                    //光标在最后一首歌曲时,按Down键光标挪到第一首歌曲
                } else if (mouse == n && order[i] == 'D') {
                    mouse = 1;
                    //其它情况up则挪动至上一首,D则下一首
                } else {
                    if (order[i] == 'U') {
                        mouse--;
                    } else {
                        mouse++;
                    }
                }
            }
            //输出
            for (int i = 1; i < n; ++i) {
                System.out.print(i + " ");
            }
            //为了换行单独将最后歌曲换行打印
            System.out.println(n);
            System.out.println(mouse);
        }
        //当歌曲的数量大于4
        else {
            for (int i = 0; i < order.length; ++i) {
                //屏幕显示的是第一页(即显示第1 – 4首)时,光标在第一首歌曲上
                //这时first=1;mouse=1;
                if (first == 1 && mouse == 1 && order[i] == 'U') {
                    first = n - 3;
                    mouse = n;
                }
                //屏幕显示最后一页时,光标在最后一首歌曲上,用户按Down键
                else if (first == n - 3 && mouse == n && order[i] == 'D') {
                    first = 1;
                    mouse = 1;
                }
                //一般翻页:屏幕显示的不是第一页时,光标在当前屏幕显示的第一首歌曲时
                else if (first != 1 && mouse == first && order[i] == 'U') {
                    --mouse;
                    --first;
                   // 光标在当前屏幕的最后一首歌时的Down键
                    //****************
                    //这里的逻辑需要重点把握,如果if语句里面是
                    //if(first != 1 && mouse == first+3 && order[i] == 'D')
                    //如果歌曲数目不是4的整数倍,则无法进入上面的第二个逻辑;在该逻辑中
                    //则first+3发生越界,无法执行
                    //改为·n-3则表示页面不在含有四首歌曲的最后一页
                } else if (first != n-3 && mouse == first+3 && order[i] == 'D') {
                    ++mouse;
                    ++first;
                } else if (order[i] == 'U') {
                    --mouse;
                } else if (order[i] == 'D') {
                    ++mouse;
                }
            }
            //输出打印
            for (int i = first; i < first + 3; ++i) {
                System.out.print(i + " ");
            }
            System.out.println(first + 3);
            System.out.println(mouse);
        }
    }
    public static void main(String[]args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String a = sc.nextLine();
            String b = sc.nextLine();
            mouseMove(a, b);
        }
    }
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/851516.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号