关注
public int[][] findIntersection(int[][] firstList, int[][] secondList) {
// write code here
if (firstList == null || secondList == null) {
return null;
}
if (firstList.length == 0 || secondList.length == 0) {
return new int[][]{};
}
int size = Math.max(firstList[firstList.length - 1][1], secondList[secondList.length - 1][1]);
int[] array = new int[size + 1];
for (int i = 0; i < firstList.length; i++) {
for (int j = firstList[i][0]; j <= firstList[i][1]; j++) {
array[j]++;
}
}
for (int i = 0; i < secondList.length; i++) {
for (int j = secondList[i][0]; j <= secondList[i][1]; j++) {
array[j]++;
}
}
List<int[]> list = new ArrayList<>();
for (int i = 0; i < array.length; i++) {
if (array[i] == 2) {
int j = i + 1;
while (j < array.length && array[j] == 2) {
j++;
}
list.add(new int[]{i, j - 1});
i = j;
}
}
int[][] res = new int[list.size()][2];
for (int i = 0; i < res.length; i++) {
res[i] = list.get(i);
}
return res;
}
public int StringSplit(String str) {
// write code here
// 先统计出总的a和b的数量,然后移动指针看在某个位置切割左a加右b的最大数量
int maxNum = 0;
int aTotal = 0, bTotal = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == 'a') {
aTotal++;
} else if (str.charAt(i) == 'b') {
bTotal++;
}
}
// 在i后面的位置切割
int aCur = 0, bCur = 0;
for (int i = 0; i < str.length() - 1; i++) {
if (str.charAt(i) == 'a') {
aCur++;
} else if (str.charAt(i) == 'b') {
bCur++;
}
maxNum = Math.max(maxNum, aCur + bTotal - bCur);
}
return maxNum;
}
public static void main(String[] args) {
int i = numberOfWays(1, 2, 3);
System.out.println(i);
}
public static int numberOfWays(int startPos, int endPos, int k) {
// write code here
// dp[i][j]表示间隔为i走j步有几种方式
int dis = endPos - startPos;
int[][] dp = new int[dis + 3][k + 1];
for (int i = 0; i < dp.length; i++) {
dp[i] = new int[k + 1];
}
for (int j = 0; j < dp[0].length; j++) {
if (j % 2 == 0) {
dp[0][j] = j;
}
}
dp[0][0] = 1;
for (int j = 1; j < dp[0].length; j++) {
for (int i = 1; i < dp.length - 1; i++) {
dp[i][j] = Math.max(dp[i][j], dp[i + 1][j - 1] + dp[i - 1][j - 1]);
}
}
// System.out.println(Arrays.deepToString(dp));
return dp[dis][k];
}
查看原帖
1 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届秋招公司红黑榜 #
9689次浏览 32人参与
# 实习必须要去大厂吗? #
146116次浏览 1535人参与
# 智慧芽求职进展汇总 #
16472次浏览 103人参与
# 校招泡的最久的公司是哪家? #
3877次浏览 19人参与
# 度小满求职进展汇总 #
9884次浏览 49人参与
# 帮我看看,领导说这话什么意思? #
4949次浏览 24人参与
# 未岚大陆求职进展汇总 #
23694次浏览 108人参与
# 职场新人体验 #
95523次浏览 642人参与
# 你觉得mentor喜欢什么样的实习生 #
9411次浏览 266人参与
# 没有家庭托举的我是怎么找工作的 #
11675次浏览 156人参与
# 入职第一天,你准备什么时候下班 #
85354次浏览 467人参与
# 从哪些方向判断这个offer值不值得去? #
6183次浏览 91人参与
# 技术岗笔试题求解 #
95346次浏览 1101人参与
# 求职低谷期你是怎么度过的 #
4846次浏览 81人参与
# 最难的技术面是哪家公司? #
54809次浏览 893人参与
# 面试紧张时你会有什么表现? #
1520次浏览 20人参与
# 独居后,你的生活是更好了还是更差了? #
28054次浏览 263人参与
# 机械人的工作环境真的很差吗 #
24880次浏览 119人参与
# 秋招想进国企该如何准备 #
97632次浏览 487人参与
# 你有哪些缓解焦虑的方法? #
37108次浏览 835人参与
# 跳槽时有那些注意事项 #
106070次浏览 567人参与
# 工作压力大怎么缓解 #
117697次浏览 1108人参与