4.12贝壳找房笔试

第三题为什么case 0?求大佬指正!思路是有限的次数下使得整个数字升序排列!
import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        sc.nextLine();
        String[][] datas = new String[t][2];
        for (int i = 0; i < t; i++) {
            datas[i] = sc.nextLine().split(" ");
        }
        for (int k = 0; k < t; k++) {
            String[] cur = datas[k];
            char[] arr = cur[0].toCharArray();
            int times = Integer.parseInt(cur[1]);
            while (times-- > 0){
                int i = 1;
                for (i = 1; i < arr.length; i++) {
                    if (arr[i] < arr[i-1]){
                        swap(arr, i, i-1);
                        break;
                    }
                }
                if (i == arr.length){
                    break;
                }
            }
            int f = 0;
            for (f = 0; f < arr.length; f++) {
                if (arr[f] != '0'){
                    break;
                }
            }
            arr = Arrays.copyOfRange(arr,f,arr.length);
            String res = new String(arr);
            System.out.println(res);
        }
    }
    public static void swap(char[] arr, int i, int j){
        char temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}
第一题求和比较,第二题从后往前回溯,第四题感觉是并查集+回溯(没时间做,都耗在case0了)

#笔试题目#
全部评论
博主,请问这些笔试题还可以在哪做吗,想看看
1 回复
分享
发布于 2021-04-13 13:01
你好,你第一和第二题通过了多少,可以给出答案吗
点赞 回复
分享
发布于 2021-04-12 22:15
滴滴
校招火热招聘中
官网直投
第一题先排序,然后求sum和数组的值比较,sum >= num[i]就count++,说明这颗nums[i]可能是答案,如果sum < nums[i],count置1,说明前面的sum不可能是答案,从这颗nums[i]重新开始计算,注意nums[i] <= 10^9,所以sum要用long。
点赞 回复
分享
发布于 2021-04-13 09:06
第二题要求字典最小序的结果,我直接逆向回溯,从后面往前,用Map存结果,key是套餐份数,value就是选择的套餐。不过代码应该有错误,只过了60,仅供参考😂
点赞 回复
分享
发布于 2021-04-13 09:11
第三题破案了,阅读理解题,吐了
点赞 回复
分享
发布于 2021-04-13 09:11

相关推荐

1 2 评论
分享
牛客网
牛客企业服务