This commit is contained in:
kkunkka
2025-04-11 10:52:38 +08:00
parent 975b2b87a2
commit 45fb9f1db2
3 changed files with 129 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
package com.dota.slidingWindow._1537;
class Solution {
public int maxSum(int[] nums1, int[] nums2) {
long sum1 = 0, sum2 = 0;
int i = 0, j = 0;
int n = nums1.length, m = nums2.length;
while (i < n && j < m) {
if (nums1[i] < nums2[j]) {
sum1 += nums1[i];
i++;
} else if (nums1[i] > nums2[j]) {
sum2 += nums2[j];
j++;
} else {
sum1+=nums1[i++];
sum2+=nums2[j++];
if (sum1 > sum2) {
sum2 = sum1;
} else {
sum1 = sum2;
}
}
}
while (i < n) {
sum1 += nums1[i++];
}
while (j < m) {
sum2+= nums2[j++];
}
return (int) (Math.max(sum1, sum2) % 1000000007);
}
}

View File

@@ -0,0 +1,71 @@
package com.dota.slidingWindow._2106;
class Solution {
public static void main(String[] args) {
new Solution().maxTotalFruits(new int[][]{
{0, 7}, {7, 4}, {9, 10}, {12, 6}, {14, 8},
{16, 5}, {17, 8}, {19, 4}, {20, 1}, {21, 3},
{24, 3}, {25, 3}, {26, 1}, {28, 10}, {30, 9},
{31, 6}, {32, 1}, {37, 5}, {40, 9}
}, 21, 30);
}
public int maxTotalFruits(int[][] fruits, int startPos, int k) {
int max = Math.max(startPos, fruits[fruits.length - 1][0]);
var dp = new int[max + 1];
for (var f : fruits) {
dp[f[0]] = f[1];
}
var sum = 0;
int start = startPos - k;
for (int i = start; i <= startPos && i < dp.length; i++) {
if (i >= 0) {
sum += dp[i];
}
}
int res = sum;
int r = startPos - k;
for (int i = start; i < startPos; i++) {
if (i >= 0) {
sum -= dp[i];
}
r++;
if (r > startPos && r < dp.length) {
sum += dp[r];
}
r++;
if (r > startPos && r < dp.length) {
sum += dp[r];
}
res = Math.max(res, sum);
}
start = startPos + k;
sum = 0;
for (int i = start; i >= startPos; i--) {
if (i < dp.length) {
sum += dp[i];
}
}
int l = startPos + k;
for (int i = start; i > startPos; i--) {
if (i < dp.length) {
sum -= dp[i];
}
l--;
if (l > 0 && l < dp.length && l < startPos) {
sum += dp[l];
}
l--;
if (l > 0 && l < dp.length && l < startPos) {
sum += dp[l];
}
res = Math.max(res, sum);
}
return res;
}
}

View File

@@ -0,0 +1,24 @@
package com.dota.str._2843;
class Solution {
public int countSymmetricIntegers(int low, int high) {
int count = 0;
for (int i = low; i <= high; i++) {
String s = Integer.toString(i);
int n = s.length();
if (n%2!=0) {
continue;
}
int l = 0, r = 0;
for (int j = 0; j < n/2; j++) {
l += s.charAt(j)-'0';
}
for (int j = n/2; j < n; j++) {
r += s.charAt(j)-'0';
}
if (l==r) count++;
}
return count;
}
}