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; }