大梦千年 level
获赞
0
粉丝
0
关注
5
看过 TA
4
电子科技大学
2025
Java
IP属地:四川
暂未填写个人简介
私信
关注
百度麻将第二题,这样做有问题吗?public class Main {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        // 注意 hasNext 和 hasNextLine 的区别        while (in.hasNext()) { // 注意 while 处理多个 case            String str = in.nextLine();            System.out.println(rotateStr(str));        }    }    public static String rotateStr(String str) {        char[] charArray = str.toCharArray();        Boolean[] bs = new Boolean[charArray.length];        Arrays.fill(bs, false);        int g = 2;        LinkedList<Character> list = new LinkedList<>();        for (int i = 1; i < bs.length; i+=2) {            list.add(charArray[i]);            bs[i] = true;        }        while (list.size() != charArray.length) {            g = 2 * g;            int start = 0;            for (int i = 0; i < bs.length; i++) {                if (!bs[i]){                    start = i;                    break;                }            }            for (int i = start; i < charArray.length; i+=g) {                list.add(charArray[i]);                bs[i] = true;            }        }        StringBuilder sb = new StringBuilder();        for (Character c : list) {            sb.append(c);        }        return sb.toString();    }}
投递百度等公司10个岗位
0 点赞 评论 收藏
分享
题目:清除数组的最小花费大佬们,帮忙看下,这个代码的思路有什么问题呢,测试用例过了,但是提交上去后只过了15%。public static void main(String[] args) {        Scanner in = new Scanner(System.in);        // 注意 hasNext 和 hasNextLine 的区别        while (in.hasNextInt()) { // 注意 while 处理多个 case            int count = in.nextInt();            ArrayList<Integer> arrayList = new ArrayList<>();            for (int i = 0; i < count; i++) {                int n = in.nextInt();                int k = in.nextInt();                int x = in.nextInt();                HashMap<Integer, Integer> map = new HashMap<>();                ArrayList<Integer> list = new ArrayList<>();                for (int j = 0; j < n; j++) {                    int num = in.nextInt();                    map.merge(num, 1, Integer::sum);                    list.add(num);                }                int min = getFirstMinNum(map);                int minRes = Math.min(n * x, k * min);                for (int j = 0; j < list.size(); j++) {                    if (list.get(j) < min) {                        assert map.containsKey(list.get(j));                        if (map.get(list.get(j)) == 1) {                            min = list.get(j);                            map.remove(list.get(j));                        } else {                            Integer v = map.get(list.get(j));                            map.put(list.get(j), v - 1);                        }                    }                    int tempRes = k * min + x * (j + 1);                    if (tempRes < minRes) {                        minRes = tempRes;                    }                }                arrayList.add(minRes);            }            in.nextLine();            arrayList.forEach(System.out::println);        }    }    private static int getFirstMinNum(HashMap<Integer, Integer> map) {        int i = 0;        for (; i<= 200000; i++) {            if (!map.containsKey(i)) {                return i;            }        }        return i;    }
查看2道真题和解析 投递美团等公司10个岗位
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务