kk
This commit is contained in:
34
src/main/java/com/dota/slidingWindow/_1537/Solution.java
Normal file
34
src/main/java/com/dota/slidingWindow/_1537/Solution.java
Normal 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);
|
||||
}
|
||||
}
|
71
src/main/java/com/dota/slidingWindow/_2106/Solution.java
Normal file
71
src/main/java/com/dota/slidingWindow/_2106/Solution.java
Normal 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;
|
||||
}
|
||||
}
|
24
src/main/java/com/dota/str/_2843/Solution.java
Normal file
24
src/main/java/com/dota/str/_2843/Solution.java
Normal 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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user