1、三七互娱 笔试
编程题:
1.卖基金的最大收益(跟牛客上卖股票利润一样的)
import java.util.*;
public class Solution {
/**
* @param prices int整型一维数组
* @return int整型
*/
public int maxProfit (int[] prices) {
if(prices.length == 0 || prices.length == 1){
return 0;
}
int buy = prices[0];
int profit = 0;
for(int i = 0; i < prices.length; i++){
buy = Math.min(buy, prices[i]);
profit = Math.max(profit, prices[i] - buy); // 取利润和当前价格-买入价格的最大值
}
return profit;
}
}
2.连续子数组之和等于给定的目标数,或其倍数。其大小至少为 2。arr[], target
(1)暴力求解法:两次循环,所有的求和可能的结果都去判断,求和取模判断是否等于0,注意要判断target是否为0,0不能作为分母。
import java.util.*;
public class Solution {
public boolean sumOfTarget(int arr, int target) {
if (arr.length == 0 || arr.length == 1) {
return false;
}
int sum = 0;
for (int i = 0; i < arr.length; i++){
sum = arr[i];
for(int j = i + 1; j < arr.length; j++) {
sum += arr[j];
if (target == 0 && sum == target) return true;
if (target != 0 && sum % target == 0) return true;
}
}
return false;
}
}