题解 | #MP3光标位置#

MP3光标位置

https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15

看题解写得都花里胡哨的,实际上只需要维护两个变量,cur指向当前选择,top指向当前列表顶部,两者关系cur - top < 4,只需要在up和down的时候注意下两者关系就行了
import java.io.IOException;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        int n = Integer.parseInt(scanner.nextLine());
        char[] commands = scanner.nextLine().toCharArray();

        int top = 1;
        int cur = 1;
        for (char command : commands) {
            switch (command) {
                case 'U':
                    if (cur == 1) {
                        cur = n;
                        if (cur > 4) {
                            top = cur - 3;
                        } else {
                            top = 1;
                        }
                    } else {
                        cur--;
                        if (top > cur) {
                            top = cur;
                        }
                    }
                    break;
                case 'D':
                    if (cur == n) {
                        top = cur = 1;
                    } else {
                        cur++;
                        if (cur > top + 3) {
                            top++;
                        }
                    }
                    break;
            }
        }
        int max = Math.min(top + 3, n);
        for (int i = top; i <= max; i++) {
            System.out.print(i);
            if (i != max) {
                System.out.print(" ");
            }
        }
        System.out.println();
        System.out.println(cur);
    }

}


全部评论

相关推荐

2024-12-12 15:07
已编辑
门头沟学院 Java
秋招end未来可期:实习内容太多了,抓不住重点,关键还是用了什么技术解决了什么问题,得到了什么样的效果,另外专业技能有点少,可以网上去找一些别人的简历来参考参考。整体内容够了,估计就是一些内容调整了。
点赞 评论 收藏
分享
野猪不是猪🐗:这种直接口头上答应,骗面试,面完了直接拉黑,相当于给自己攒面经了(
点赞 评论 收藏
分享
评论
4
2
分享

创作者周榜

更多
牛客网
牛客企业服务