美文网首页
hackerrank上的一道题——Sherlock and Wa

hackerrank上的一道题——Sherlock and Wa

作者: 胡家六少爷 | 来源:发表于2016-07-23 23:00 被阅读0次
    题目描述

    个人觉得自己的想法很机智,首先使用 2N 长度的数组存储了数据,开始输入数据时存储位置为 N-2N-1,所以后续在做右移的时候只需将最后一位的数据放到 N 前面的位置即可,剩下的依此类推。对了,记得考虑当移位次数大于数据总数时特殊情况的考虑,取余即可。原始代码如下:

    import java.util.Scanner;
    
    /**
    * Created by huliang on 16/7/23.
    */
    
    public class Solution {
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            while (scanner.hasNext()) {
                int N = scanner.nextInt();
                int K = scanner.nextInt();
                int Q = scanner.nextInt();
    
                // 获取数组数据
                int a[] = new int[2 * N];
                for (int i = 0; i < N; i++) {
                    a[i] = '\0';
                }
                for (int i = N; i < 2 * N; i++) {
                    a[i] = scanner.nextInt();
                }
    
                // 进行交换操作,注意当 K>N 时需进行取余操作
                for (int i = 1; i <= K%N; i++) {
                    a[N - i] = a[2 * N - i];
                    a[2 * N - i] = '\0';
                }
            
                // 输出需要的值
                for (int i = 0; i < Q; i++) {
                    System.out.println(a[N - K%N + scanner.nextInt()]);
                }
    
            }
        }
    }

    相关文章

      网友评论

          本文标题:hackerrank上的一道题——Sherlock and Wa

          本文链接:https://www.haomeiwen.com/subject/bfmwjttx.html