题解 | #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);
    }

}


全部评论

相关推荐

05-11 20:45
门头沟学院 Java
有担当的灰太狼又在摸...:零帧起手查看图片
点赞 评论 收藏
分享
晗江雪:其实我只是觉得你们导员说的很好笑
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 17:13
想去,但是听说加班强度实在难崩,所以拒绝了,现在有点心梗对面hr感觉也是实习生,打电话的时候怪紧张的,但是感觉人很好嘞
水中水之下水道的鼠鼠:哥们这不先去体验一下,不行再跑呗,大不了混个实习经历(有更好的转正offer就当我没说)
点赞 评论 收藏
分享
评论
4
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务