9.7完美世界笔试
1. 兔子跳桩
有N个桩,兔子每次可以向右跳jump[i]个距离,也可以任意向左回跳一步,求最快跳出界的路径长度。
比如:输入jump=[2, 5, 1, 1, 1, 1]返回4。路径为0->2->3->1->6
通过33.3%。没想出来怎么做。
public int minJump (int[] jump) {
} 2. 买辅导书
给定一个数组,表示每本书的价格,现需要买两本书,给定总钱数,问有多少种不同的组合。
比如:输入:[1, 2, 6, 9],10输出:4。即:(1, 2),(1, 6),(1, 9),(2, 6)
通过100%。
public int purchaseCourses (int[] prices, int pocket) {
// write code here
int T = 1000000007;
int count = 0;
Arrays.sort(prices);
int len = prices.length;
int left = 0, right = len - 1;
while(left < right){
while(prices[left] + prices[right] > pocket){
right--;
}
if(left < right){
count = (count + right - left) % T;
left++;
right = len - 1;
}
}
return count;
}
OPPO公司福利 1091人发布