From 4653a6e847e11e8afe41704f3745af0b3247c618 Mon Sep 17 00:00:00 2001 From: kkunkka Date: Sat, 16 Dec 2023 14:19:36 +0800 Subject: [PATCH] kk --- .../java/com/dota/arr/_2656/Solution.java | 16 ++++++++ src/main/java/com/dota/rank/Solution.java | 5 +++ src/main/java/com/dota/treeMap/Solution.java | 41 +++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 src/main/java/com/dota/arr/_2656/Solution.java create mode 100644 src/main/java/com/dota/rank/Solution.java create mode 100644 src/main/java/com/dota/treeMap/Solution.java diff --git a/src/main/java/com/dota/arr/_2656/Solution.java b/src/main/java/com/dota/arr/_2656/Solution.java new file mode 100644 index 0000000..b0476ed --- /dev/null +++ b/src/main/java/com/dota/arr/_2656/Solution.java @@ -0,0 +1,16 @@ +package com.dota.arr._2656; + +/** + * 2656. K 个元素的最大和 + */ +class Solution { + public int maximizeSum(int[] nums, int k) { + var max = nums[0]; + for (int num : nums) { + if (num>max) { + max = num; + } + } + return max * k + k*(k-1)/2; + } +} diff --git a/src/main/java/com/dota/rank/Solution.java b/src/main/java/com/dota/rank/Solution.java new file mode 100644 index 0000000..e0ca6f1 --- /dev/null +++ b/src/main/java/com/dota/rank/Solution.java @@ -0,0 +1,5 @@ +package com.dota.rank; + +public class Solution { + +} diff --git a/src/main/java/com/dota/treeMap/Solution.java b/src/main/java/com/dota/treeMap/Solution.java new file mode 100644 index 0000000..4ca31b6 --- /dev/null +++ b/src/main/java/com/dota/treeMap/Solution.java @@ -0,0 +1,41 @@ +package com.dota.treeMap; + +import java.util.Map; +import java.util.TreeMap; + +public class Solution { + +} + +/** + * 2276. 统计区间中的整数数目 + */ + +class CountIntervals { + TreeMap map = new TreeMap<>(); + int cnt = 0; + + public CountIntervals() { + + } + + public void add(int left, int right) { + Map.Entry inte = map.floorEntry(right); + while (inte != null && inte.getValue() >= left) { + int l = inte.getKey(); + int r = inte.getValue(); + left = Math.min(l, left); + right = Math.max(r, right); + cnt -= r - l + 1; + map.remove(l); + inte = map.floorEntry(right); + } + + cnt += (right - left + 1); + map.put(left, right); + } + + public int count() { + return cnt; + } +}