Java日记2018-06-13
2018-06-13 本文已影响0人
hayes0420
- 扑克牌顺子
public boolean isContinuous(int[] nums) {
if (nums.length < 5)
return false;
Arrays.sort(nums);
int cnt = 0;
for (int num : nums)
if (num == 0)
cnt++;
for (int i = cnt; i < nums.length - 1; i++) {
//不是连续的,返回false
if (nums[i + 1] == nums[i])
return false;
cnt -= nums[i + 1] - nums[i] - 1;
}
return cnt >= 0;
}
- 圆圈中最后剩下的数
public int LastRemaining_Solution(int n, int m) {
if (n == 0)
return -1;
if (n == 1)
return 0;
return (LastRemaining_Solution(n - 1, m) + m) % n;
}
- 股票的最大利润
public class maxProfit {
public static int max(int[] arr) {
if(arr.length==0) return 0;
int maxprofit=0;
int min = arr[0];
//循环从1开始,因为要使用最低的买入策略arr[0]
for(int i=1;i<arr.length;i++) {
//找到i-1次前的最小买入点,与当前的买入点
min = Math.min(min, arr[i]);
//找到i-1次前的最大买入,与当前的买入的比较
maxprofit=Math.max(maxprofit, arr[i]-min);
}
return maxprofit;
}