kk
This commit is contained in:
16
src/main/java/com/dota/arr/_2873/Solution.java
Normal file
16
src/main/java/com/dota/arr/_2873/Solution.java
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package com.dota.arr._2873;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public long maximumTripletValue(int[] nums) {
|
||||||
|
long res = 0;
|
||||||
|
long max = Math.max(nums[0], nums[1]);
|
||||||
|
long num = nums[0] - nums[1];
|
||||||
|
int n = nums.length;
|
||||||
|
for (int i = 2; i < n; i++) {
|
||||||
|
res = Math.max(res, num * nums[i]);
|
||||||
|
num = Math.max(num, max - nums[i]);
|
||||||
|
max = Math.max(max, nums[i]);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
21
src/main/java/com/dota/dp/_1177/Solution.java
Normal file
21
src/main/java/com/dota/dp/_1177/Solution.java
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package com.dota.dp._1177;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public List<Boolean> canMakePaliQueries(String s, int[][] queries) {
|
||||||
|
List<Boolean> list = new ArrayList<>();
|
||||||
|
int n = s.length();
|
||||||
|
var dp = new int[n + 1];
|
||||||
|
for (int i = 0; i < s.length(); i++) {
|
||||||
|
dp[i + 1] = dp[i] ^ (1 << s.charAt(i) - 'a') ;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int[] query : queries) {
|
||||||
|
int l = query[0], r = query[1], k = query[2];
|
||||||
|
list.add(Integer.bitCount(dp[l] ^ dp[r+1]) / 2 <= k);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
25
src/main/java/com/dota/hard/_1542/Solution.java
Normal file
25
src/main/java/com/dota/hard/_1542/Solution.java
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
package com.dota.hard._1542;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public int longestAwesome(String s) {
|
||||||
|
int n = s.length();
|
||||||
|
int[] pos = new int[1 << 10];
|
||||||
|
Arrays.fill(pos, n); // n 表示没有找到异或前缀和
|
||||||
|
pos[0] = -1; // pre[-1] = 0
|
||||||
|
int ans = 0;
|
||||||
|
int pre = 0;
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
pre ^= 1 << (s.charAt(i) - '0');
|
||||||
|
for (int d = 0; d < 10; d++) {
|
||||||
|
ans = Math.max(ans, i - pos[pre ^ (1 << d)]); // 奇数
|
||||||
|
}
|
||||||
|
ans = Math.max(ans, i - pos[pre]); // 偶数
|
||||||
|
if (pos[pre] == n) { // 首次遇到值为 pre 的前缀异或和,记录其下标 i
|
||||||
|
pos[pre] = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ans;
|
||||||
|
}
|
||||||
|
}
|
34
src/main/java/com/dota/str/_1542/Solution.java
Normal file
34
src/main/java/com/dota/str/_1542/Solution.java
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
package com.dota.str._1542;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public int longestAwesome(String s) {
|
||||||
|
int sum = 0;
|
||||||
|
for (int i = 0; i < s.length(); i++) {
|
||||||
|
for (int j = i; j < s.length(); j++) {
|
||||||
|
if (check(s,i,j+1)) {
|
||||||
|
sum = Math.max(sum, j-i+1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean check(String s, int l, int r) {
|
||||||
|
int[] dp = new int[10];
|
||||||
|
for (int i =l;i<r;i++) {
|
||||||
|
dp[s.charAt(i)-'0']++;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean flag = false;
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
if (dp[i] % 2 ==1) {
|
||||||
|
if (flag) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user