918. 环形子数组的最大和
int sum = 0, curMax = 0, max = nums[0], curMin = 0, min = nums[0];
for(int i : nums) {
curMax = Math.max(curMax + i, i);
max = Math.max(max, curMax);
curMin = Math.min(curMin + i, i);
min = Math.min(min, curMin);
sum += i;
}
return max > 0 ? Math.max(max, sum - min) : max;因为是环形,所以有max 和 sum - min这一步。又因为,全负数的情况需要单独考虑,直接返回max即可
914. 卡牌分组
for(int i = 2; i <= n; i++) {
if(n % i == 0) {首先得能分总数
boolean flag = true;
for(int j : num) {遍历所有存在的卡牌的数量
if(j % i != 0) {是否能分每种卡牌的数量
flag = false;
break;下一轮
}
}
if(flag) return true;有了直接反
}
}
return false;
896. 单调数列
boolean a = true, b = true;
for(int i = 0; (i < nums.length - 1) && (a || b); i++) {
if(nums[i] < nums[i + 1]) a = false;
if(nums[i] > nums[i + 1]) b = false;
}
return a || b;
816. 模糊坐标
首先把数字取出来;
然后从不同的点分断开来;
分别对分断开来的字符串添加小数点;
if(start == end || s.charAt(start) != '0') ans.add(s.substring(start, end + 1));//不用加逗号只有一位且不等于零
for(int i = start; i < end; i++) {
String a = s.substring(start, i + 1), b = s.substring(i + 1, end + 1);
if(a.length() > 1 && a.charAt(0) == '0') continue;不是一位,且首位等于零,直接pass
if(b.charAt(b.length() - 1) == '0') continue;最后一位等于零,'.0',不行,直接pass
ans.add(a + "." + b);
}