当前位置:网站首页>LeetCode 6005. The minimum operand to make an array an alternating array
LeetCode 6005. The minimum operand to make an array an alternating array
2022-07-06 00:09:00 【Daylight629】
6005. The minimum number of operands to make an array an alternating array
I'll give you a subscript from 0 Starting array nums , The array consists of n It's made up of four positive integers .
If the following conditions are met , The array nums It's a Alternating array :
nums[i - 2] == nums[i], among2 <= i <= n - 1.nums[i - 1] != nums[i], among1 <= i <= n - 1.
In one step operation in , You can choose the subscript i And will nums[i] change by any Positive integer .
Returns the that makes the array an alternating array The minimum number of operands .
Example 1:
Input :nums = [3,1,3,2,4,3]
Output :3
explain :
One way to turn an array into an alternating array is to convert the array to [3,1,3,1,3,1] .
under these circumstances , The operands are 3 .
Can prove that , Operands are less than 3 Under the circumstances , Cannot make an array into an alternating array .
Example 2:
Input :nums = [1,2,2,2,2]
Output :2
explain :
One way to turn an array into an alternating array is to convert the array to [1,2,1,2,1].
under these circumstances , The operands are 2 .
Be careful , Array cannot be converted to [2,2,2,2,2] . Because in this case ,nums[0] == nums[1], The condition of alternating array is not satisfied .
Tips :
1 <= nums.length <= 1051 <= nums[i] <= 105
Two 、 Method 1
Count the most frequent occurrences of , Then find the one that appears the most and the second most , If it's not equal, subtract these , If equal, subtract the maximum sum
class Solution {
public int minimumOperations(int[] nums) {
Map<Integer, Integer> map1 = new HashMap<>();
Map<Integer, Integer> map2 = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
if ((i & 1) == 1) {
map1.put(nums[i], map1.getOrDefault(nums[i], 0) + 1);
} else {
map2.put(nums[i], map2.getOrDefault(nums[i], 0) + 1);
}
}
int x1 = 0;
int x2 = 0;
int y1 = 0;
int y2 = 0;
int a = 0;
int b = 0;
int c = 0;
int d = 0;
for (Map.Entry<Integer,Integer> entry : map1.entrySet()) {
if (entry.getValue() > a) {
b = a;
a = entry.getValue();
x1 = entry.getKey();
}
else if (entry.getValue() > b) {
b = entry.getValue();
}
}
for (Map.Entry<Integer,Integer> entry : map2.entrySet()) {
if (entry.getValue() > c) {
d = c;
c = entry.getValue();
y1 = entry.getKey();
}
else if (entry.getValue() > d) {
d = entry.getValue();
}
}
if (x1 == y1) {
return nums.length - Math.max(a + d, b + c);
} else {
return nums.length - (a + c);
}
}
}
Complexity analysis
Time complexity :O(n).
Spatial complexity :O(n).
边栏推荐
- Global and Chinese markets of universal milling machines 2022-2028: Research Report on technology, participants, trends, market size and share
- Transport layer protocol ----- UDP protocol
- Which side projects can be achieved? Is it difficult for we media to earn more than 10000 a month?
- The use of El cascader and the solution of error reporting
- [EF core] mapping relationship between EF core and C data type
- JS can really prohibit constant modification this time!
- 云呐|公司固定资产管理系统有哪些?
- C # input how many cards are there in each of the four colors.
- Key structure of ffmpeg - avformatcontext
- C file and folder operation
猜你喜欢

MySQL functions

FFMPEG关键结构体——AVCodecContext

Open source CRM customer relationship system management system source code, free sharing

Problem solving win10 quickly open ipynb file

Teach you to run uni app with simulator on hbuilderx, conscience teaching!!!

Zero rhino technology joined hands with the intelligence Club: the "causal faction" forum was successfully held, and the "causal revolution" brought the next generation of trusted AI

18. (ArcGIS API for JS) ArcGIS API for JS point collection (sketchviewmodel)

认识提取与显示梅尔谱图的小实验(观察不同y_axis和x_axis的区别)

多普勒效应(多普勒频移)

Configuring OSPF GR features for Huawei devices
随机推荐
Global and Chinese market of valve institutions 2022-2028: Research Report on technology, participants, trends, market size and share
剖面测量之提取剖面数据
什么叫做信息安全?包含哪些内容?与网络安全有什么区别?
用列錶初始化你的vector&&initializer_list簡介
wx.getLocation(Object object)申请方法,最新版
How to rotate the synchronized / refreshed icon (EL icon refresh)
总结了 800多个 Kubectl 别名,再也不怕记不住命令了!
15 MySQL stored procedures and functions
Teach you to run uni app with simulator on hbuilderx, conscience teaching!!!
MySql——CRUD
Chapter 16 oauth2authorizationrequestredirectwebfilter source code analysis
硬件及接口学习总结
MySql——CRUD
Hudi of data Lake (1): introduction to Hudi
mysql-全局锁和表锁
跟着CTF-wiki学pwn——ret2libc1
[binary search tree] add, delete, modify and query function code implementation
【NOI模拟赛】Anaid 的树(莫比乌斯反演,指数型生成函数,埃氏筛,虚树)
云呐|固定资产管理系统主要操作流程有哪些
转:未来,这样的组织才能扛住风险