
0 点赞 评论 收藏
分享
南山以北:没收到

0 点赞 评论 收藏
分享
快手社招内推:产品哪有前端舒服

0 点赞 评论 收藏
分享
我家的狗不咬人:恭喜恭喜 求波面经

0 点赞 评论 收藏
分享
腾讯Offer碗里来:刚才拜托腾讯的师兄查了下简历状态,过了这么多天了竟然还在报批流程中
不过只要不是报批未通过,等多一会也没事的呜呜,千万别报批未通过呀
0 点赞 评论 收藏
分享
向宇回桌:没测试,可能有错,肯定大佬指正。个人觉得不是背包。 有爱: public static int isAll(int[] n, int[] m, int S){
int sum = Arrays.stream(n).sum() + S;
Arrays.sort(m);
int i = 0;
while (sum - m[i] > 0) {
sum -= m[i];
i++;
}
return i;
} 无爱问题1: public static boolean isAll(int[] n, int[] m, int S){
if (n.length > m.length) { return false; }
Arrays.sort(n); Arrays.sort(m);
for (int i=0; i<n.length; i++) {
int need = n[i] - m[i];
if (need < 0)
S += need;
}
return S >= 0;
} 无爱问题2: private static int n[];
private static int m[];
private static int S;
public static int[] isAll(int[] n, int[] m, int S){
Arrays.sort(n);
Arrays.sort(m);
Main.n = n; Main.m = m; Main.S = S;
int l =0, r = m.length;
while (l < r)
{
int mid = l + r + 1 >> 1;
if (can(mid)) { l = mid; }
else { r = mid - 1; }
}
int ans = 0;
for (int i=0; i<l; i++) {
ans += m[i];
}
return new int[] {l, ans};
}
private static boolean can(int count) {
int tmpS = S;
for (int i = count-1,j = n.length-1; i>=0; i--, j--) {
if (n[j] < m[i]) {
tmpS -= (m[i] - n[j]);
}
if (tmpS < 0) { return false; }
}
return true;
}

0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: