当前位置:网站首页>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 <= 105
1 <= 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).
边栏推荐
- XML configuration file (DTD detailed explanation)
- Transport layer protocol ----- UDP protocol
- Open source CRM customer relationship system management system source code, free sharing
- What is information security? What is included? What is the difference with network security?
- Problems encountered in the database
- Miaochai Weekly - 8
- QT QPushButton details
- 云呐|公司固定资产管理系统有哪些?
- Configuring OSPF load sharing for Huawei devices
- MySQL global lock and table lock
猜你喜欢
Determinant learning notes (I)
如何解决ecology9.0执行导入流程流程产生的问题
从底层结构开始学习FPGA----FIFO IP核及其关键参数介绍
MySql——CRUD
wx.getLocation(Object object)申请方法,最新版
N1 # if you work on a metauniverse product [metauniverse · interdisciplinary] Season 2 S2
Configuring OSPF load sharing for Huawei devices
What if the C disk is not enough? Let's see how I can clean up 25g of temp disk space after I haven't redone the system for 4 years?
Key structure of ffmpeg -- AVCodecContext
Knowledge about the memory size occupied by the structure
随机推荐
MySQL functions
C file and folder operation
VBA fast switching sheet
微信小程序---WXML 模板语法(附带笔记文档)
XML configuration file (DTD detailed explanation)
Upgrade openssl-1.1.1p for openssl-1.0.2k
传输层协议------UDP协议
Zhongjun group launched electronic contracts to accelerate the digital development of real estate enterprises
Recognize the small experiment of extracting and displaying Mel spectrum (observe the difference between different y_axis and x_axis)
Detailed explanation of APP functions of door-to-door appointment service
Miaochai Weekly - 8
USB Interface USB protocol
Senparc. Weixin. Sample. MP source code analysis
Ffmpeg learning - core module
Global and Chinese market of valve institutions 2022-2028: Research Report on technology, participants, trends, market size and share
[designmode] composite mode
wx.getLocation(Object object)申请方法,最新版
[binary search tree] add, delete, modify and query function code implementation
Key structure of ffmpeg - avformatcontext
行列式学习笔记(一)