💡
原文英文,约700词,阅读约需3分钟。
📝
内容提要
给定一个整数数组和一个整数k,若数组中有元素小于k,则返回-1。否则,计算大于k的不同值的数量,即为将所有元素变为k所需的最小操作次数。
🎯
关键要点
- 给定一个整数数组和一个整数k,若数组中有元素小于k,则返回-1。
- 有效整数h的定义是数组中所有大于h的值相同。
- 操作是选择一个有效的整数h,将所有大于h的元素设置为h。
- 计算将所有元素变为k所需的最小操作次数。
- 如果数组中存在小于k的元素,则无法将所有元素变为k,返回-1。
- 收集所有大于k的不同值,每个不同值代表一次操作。
- 返回大于k的不同值的数量作为所需的最小操作次数。
- 该方法的时间复杂度为O(n),n为数组长度。
❓
延伸问答
如何判断是否可以将数组中的所有元素变为k?
如果数组中存在小于k的元素,则无法将所有元素变为k,返回-1。
将数组元素变为k的最小操作次数如何计算?
计算大于k的不同值的数量,每个不同值代表一次操作。
什么是有效整数h?
有效整数h是数组中所有大于h的值相同的整数。
如果数组为[5,2,5,4,5],k为2,最小操作次数是多少?
最小操作次数为2。
时间复杂度是多少?
该方法的时间复杂度为O(n),n为数组长度。
如何收集数组中大于k的不同值?
通过遍历数组,使用哈希表收集所有大于k的不同值。
➡️