当前位置:网站首页>LeetCode 1558. Get the minimum number of function calls of the target array
LeetCode 1558. Get the minimum number of function calls of the target array
2022-07-06 16:43:00 【Daylight629】
1558. Get the minimum number of function calls to the target array
Give you a nums
The size is the same and the initial value is 0 Array of arr
, Please call the above function to get the integer array nums
.
Please return and will arr
become nums
Minimum number of function calls .
The answer is guaranteed in 32 Bits within signed integers .
Example 1:
Input :nums = [1,5]
Output :5
explain : Add... To the second number 1 :[0, 0] become [0, 1] (1 operations ).
Multiply all numbers by 2 :[0, 1] -> [0, 2] -> [0, 4] (2 operations ).
Add... To both numbers 1 :[0, 4] -> [1, 4] -> [1, 5] (2 operations ).
The total number of operations is :1 + 2 + 2 = 5 .
Example 2:
Input :nums = [2,2]
Output :3
explain : Add... To both numbers 1 :[0, 0] -> [0, 1] -> [1, 1] (2 operations ).
Multiply all numbers by 2 : [1, 1] -> [2, 2] (1 operations ).
The total number of operations is : 2 + 1 = 3 .
Example 3:
Input :nums = [4,2,5]
Output :6
explain :( initial )[0,0,0] -> [1,0,0] -> [1,0,1] -> [2,0,2] -> [2,1,2] -> [4,2,4] -> [4,2,5] (nums Array ).
Example 4:
Input :nums = [3,2,2,4]
Output :7
Example 5:
Input :nums = [2,4,8,16]
Output :8
Tips :
1 <= nums.length <= 10^5
0 <= nums[i] <= 10^9
Two 、 Method 1
greedy
class Solution {
public int minOperations(int[] nums) {
int ret = 0, maxn = 0;
for (int num : nums) {
maxn = Math.max(maxn, num);
while (num != 0) {
if ((num & 1) != 0) {
ret++;
}
num >>= 1;
}
}
if (maxn != 0) {
while (maxn != 0) {
ret++;
maxn >>= 1;
}
ret--;
}
return ret;
}
}
Complexity analysis
Time complexity :O(n×m), among nn It's an array nums The length of ,m Is the maximum number of bits of the binary representation of the elements in the array , These elements in this question are 32 Bit signed integers , therefore m<32.
Spatial complexity :O(1).
边栏推荐
- One hundred questions of image processing (1-10)
- Local visualization tools are connected to redis of Alibaba cloud CentOS server
- MariaDB的安装与配置
- FLV格式详解
- Log statistics (double pointer)
- Acwing: the 56th weekly match
- Two weeks' experience of intermediate software designer in the crash soft exam
- Simple records of business system migration from Oracle to opengauss database
- Chapter 5 namenode and secondarynamenode
- Gridhome, a static site generator that novices must know
猜你喜欢
新手必会的静态站点生成器——Gridsome
Story of [Kun Jintong]: talk about Chinese character coding and common character sets
Local visualization tools are connected to redis of Alibaba cloud CentOS server
Chapter 7__ consumer_ offsets topic
软通乐学-js求字符串中字符串当中那个字符出现的次数多 -冯浩的博客
It is forbidden to trigger onchange in antd upload beforeupload
第5章 消费者组详解
Detailed explanation of FLV format
解决Intel12代酷睿CPU【小核载满,大核围观】的问题(WIN11)
原生js实现全选和反选的功能 --冯浩的博客
随机推荐
Market trend report, technological innovation and market forecast of desktop electric tools in China
QT realizes window topping, topping state switching, and multi window topping priority relationship
Classic application of stack -- bracket matching problem
提交Spark应用的若干问题记录(sparklauncher with cluster deploy mode)
Summary of FTP function implemented by qnetworkaccessmanager
去掉input聚焦时的边框
SQL快速入门
我在字节跳动「修电影」
(POJ - 1458) common subsequence (longest common subsequence)
Chapter 1 overview of MapReduce
第三章 MapReduce框架原理
第7章 __consumer_offsets topic
Bidirectional linked list - all operations
QT implementation window gradually disappears qpropertyanimation+ progress bar
ffmpeg命令行使用
Native JS realizes the functions of all selection and inverse selection -- Feng Hao's blog
antd upload beforeUpload中禁止触发onchange
CMake Error: Could not create named generator Visual Studio 16 2019解决方法
Simply try the new amp model of deepfacelab (deepfake)
Two weeks' experience of intermediate software designer in the crash soft exam