9.4滴滴笔试求题解

第一题我猜应该用动态规划,但是最后没搞出来,滑窗过了40多。
第二题应是需要某种优化,哈希表过了60多。唉,求一份题解。

第一题桃子装箱
n个桃子,每个重ai,尽可能多的装入一个箱子,要求箱子内最终的桃子重量不能超过平均重量的k倍,问最多能装多少个桃子?
输入:
第一行n和k。
第二行n个数,对应每个桃子的重量。
输出:最多能装的数量

例子:
输入:
5 2
3 10 5 4 2
输出:
4


第二题老张的美术课
对于每个非负整数都有一个美丽值,美丽值定义为这个数十进制下每个数位的异或和,如123的美丽值是1^2^3=0。问对于一个闭区间[L, R]中所有的整数,美丽值恰好为t的数有多少个?

输入:
第一行一个正整数T,代表T个询问
第二行T个非负整数,Li
第三行T个非负整数,Ri
第四行T个非负整数,ti

输出:
每个询问输出一个整数,每个输出用空格隔开

例子:
输入:
2
0 1
0 10
0 1
输出:
1 2

#滴滴##笔试##滴滴23秋招笔试有点儿难啊#
全部评论
第一题我用的贪心,从满箱子开始,不符合条件就去掉最重的桃子, 二题求出所有区间的最小边界和最大边界,计算这个边界的中的美丽值,之后直接从数组取,但都没全过
1 回复 分享
发布于 2022-09-04 20:53 四川
别用哈希用数组存能到90%😂😂
点赞 回复 分享
发布于 2022-09-04 20:52 广东
两道题都是91
点赞 回复 分享
发布于 2022-09-04 20:53 四川
0~9的数异或结果不会超过9,目标值大于9的直接返回0。没加这个之前64超时 加了就全过了
点赞 回复 分享
发布于 2022-09-04 20:55 江苏
第二题暴力过了0%,没搞懂,优化了半天也只有18
点赞 回复 分享
发布于 2022-09-04 20:55 浙江
第一题滑动窗口,第二题前缀和
点赞 回复 分享
发布于 2022-09-04 21:03 四川
https://www.nowcoder.com/discuss/1040053 可以看下我的,我也不知道哪里错了呜呜呜
点赞 回复 分享
发布于 2022-09-04 21:08 湖南
请问下,第一题的n的范围是多少
点赞 回复 分享
发布于 2022-09-04 21:08 北京
while True:     try:         n, k = map(int, input().split(" "))         a = list(map(int, input().split(" ")))         a.sort()         ans = 0         sum_ = 0         for i in range(n):             sum_ += a[i]             ans += 1             mean_a = sum_/ans             if a[i] > k*mean_a:                 ans -= 1                 break         print(ans)     except:         break
点赞 回复 分享
发布于 2022-09-04 21:10 湖北
我第二题暴力100😰
点赞 回复 分享
发布于 2022-09-04 21:12 甘肃
第一题我是先按重量排序,然后再从滑动窗口大小递减来找,找到了就直接返回,过了80几
点赞 回复 分享
发布于 2022-09-04 21:14 江苏
有无大佬看下第一题,只能82,难道贪的不对?核心如下     static int p1(int[] arr, int n, int k) {         Arrays.sort(arr);         long sum = 0;         for (int v : arr) {             sum += v;         }         for (int i = n - 1; i >= 0; i--) {             //max<=k*(sum/n)的变形 ,从大到小枚举,满足就返回,否则就移除最重的那个;             if (k * sum >= (long) (i + 1) * arr[i]) {                 return i + 1;             } else {                 sum -= arr[i];             }         }         return 0;     }
点赞 回复 分享
发布于 2022-09-04 21:16 广东
有大佬看看为什么答案错误,只过了 45 %,都没超时 public class Main {     static long res = 0;     static long[] nums;     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int n = scanner.nextInt();         int k = scanner.nextInt();         nums = new long[n];         for (int i = 0; i < n; i++) {             nums[i] = scanner.nextLong();         }         Arrays.sort(nums);         backtrack(nums.length, 0, 0, 0, 0, k);         System.out.println(res);     }     private static void backtrack(long n, int cur, long sum, long total, long maxWeight, long k) {         if (total != 0) {             if (maxWeight * total <= sum * k) {                 res = Math.max(res, total);             } else {                 return;             }         }         if (cur == n) {             return;         }         backtrack(n, cur + 1, sum + nums[cur], total + 1, Math.max(maxWeight, nums[cur]), k);         backtrack(n, cur + 1, sum, total, maxWeight, k);     } }
点赞 回复 分享
发布于 2022-09-04 21:22 四川
点赞 回复 分享
发布于 2022-09-04 21:24 广东
```java public class T1 {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int n = sc.nextInt();         int k = sc.nextInt();         int res = 1;         Integer[] arr= new Integer[n];         long[] sum = new long[n];         for(int i=0;i<arr.length;i++){             arr[i] = sc.nextInt();         }         Arrays.sort(arr,(a,b)->b-a);         sum[0] = arr[0];         for(int i=1;i<arr.length;i++){             sum[i]=sum[i-1]+arr[i];         }         long count = 0;         for(int i=0,j=0;j<arr.length;j++){             count+=arr[j];             if((arr[i]/(count*1.0/(j-i+1)))<=k){                 res = Math.max(res,j-i+1);             }else{                 count-=arr[i];                 i++;             }         }         System.out.println(res);     } }
点赞 回复 分享
发布于 2022-09-04 21:25 湖北
好奇怪,第二题每个区间我只算第一个数的漂亮数x,区间后面的数的漂亮数只需要把x累积与1xor就行,然后比较是不是漂亮数,ac了,下来我越想越不对啊,咋ac的,感觉是他的实例不完备,被我偷鸡了
点赞 回复 分享
发布于 2022-09-05 00:41 四川

相关推荐

11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
1 5 评论
分享
牛客网
牛客企业服务