3375. 使数组的值全部为 K 的最少操作次数题目给你一个整数数组 nums 和一个整数 k 。
如果一个数组中所有 严格大于 h 的整数值都 相等 ,那么我们称整数 h 是 合法的 。
比方说,如果 nums = [10, 8, 10, 8] ,那么 h = 9 是一个 合法 整数,因为所有满足 nums[i] > 9 的数都等于 10 ,但是 5 不是 合法 整数。
你可以对 nums 执行以下操作:
选择一个整数 h ,它对于 当前 nums 中的值是合法的。
对于每个下标 i ,如果它满足 nums[i] > h ,那么将 nums[i] 变为 h 。
你的目标是将 nums 中的所有元素都变为 k ,请你返回 最少 操作次数。如果无法将所有元素都变 k ,那么返回 -1 。
示例 1:
**输入:**nums = [5,2,5,4,5], k = 2
**输出:**2
解释:
依次选择合法整数 4 和 2 ,将数组全部变为 2 。
示例 2:
**输入:**nums = [2,1,2], k = 2 ...
3396. 使数组元素互不相同所需的最少操作次数题目给你一个整数数组 nums,你需要确保数组中的元素 互不相同 。为此,你可以执行以下操作任意次:
从数组的开头移除 3 个元素。如果数组中元素少于 3 个,则移除所有剩余元素。
**注意:**空数组也视作为数组元素互不相同。返回使数组元素互不相同所需的 最少操作次数 。
示例 1:
输入: nums = [1,2,3,4,2,3,3,5,7]
输出: 2
解释:
第一次操作:移除前 3 个元素,数组变为 [4, 2, 3, 3, 5, 7]。
第二次操作:再次移除前 3 个元素,数组变为 [3, 5, 7],此时数组中的元素互不相同。
因此,答案是 2。
示例 2:
输入: nums = [4,5,6,4,4]
输出: 2
解释:
第一次操作:移除前 3 个元素,数组变为 [4, 4]。
第二次操作:移除所有剩余元素,数组变为空。
因此,答案是 2。
示例 3:
输入: nums = [6,7,8,9]
输出: 0
解释:
数组中的元素已经互不相同,因此不需要进行任何操作,答案是 0。
提示: ...
translate-helper
做了个小项目,看简要介绍:
这是一个强大的网页翻译助手,支持作为浏览器扩展或独立JavaScript脚本运行。它允许你在任何网页上选择文本并进行即时翻译,支持多种语言互译,无需跳转到翻译网站。
跳转链接:https://github.com/ReappealXy/translate-helper
每日一题
未读416.分割等和子集题目给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
示例 1:
123输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。
示例 2:
123输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。
提示:
1 <= nums.length <= 200
1 <= nums[i] <= 100
思路动态规划思路1. 问题转化
如果整个数组的和 sum 是奇数,直接返回false(因为奇数无法均分成两个整数和)。
如果 sum 是偶数,问题转化为:是否存在一个子集,其和等于 sum / 2。
2. 定义状态
定义一个布尔数组 dp,其中 dp[i] 表示:能否用数组中的某些数凑出和 i。
dp[i] = true:能凑出 i。
dp[i] = false:不能凑出i。
初始化:dp[0] ...
螺蛳粉火锅好好吃!我要每天都吃螺蛳粉!!!
真的太好吃了呜呜呜呜呜~
每日一题
未读209. 长度最小的子数组题目给定一个含有 n 个正整数的数组和一个正整数 **target **。
找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子数组,返回 0 。
示例 1:
123输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。
示例 2:
12输入:target = 4, nums = [1,4,4]输出:1
示例 3:
12输入:target = 11, nums = [1,1,1,1,1,1,1,1]输出:0
提示:
1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 104
思路先讲讲还是超时的代码思路
问题回顾给定一个正整数数组 nums 和一个目标值 target,要求: ...
1863. 找出所有子集的异或总和再求和题目一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果;如果数组为 空 ,则异或总和为 0 。
例如,数组 [2,5,6] 的 异或总和 为 2 XOR 5 XOR 6 = 1 。
给你一个数组 nums ,请你求出 nums 中每个 子集 的 异或总和 ,计算并返回这些值相加之 和 。
**注意:**在本题中,元素 相同 的不同子集应 多次 计数。
数组 a 是数组 b 的一个 子集 的前提条件是:从 b 删除几个(也可能不删除)元素能够得到 a 。
示例 1:
12345678输入:nums = [1,3]输出:6解释:[1,3] 共有 4 个子集:- 空子集的异或总和是 0 。- [1] 的异或总和为 1 。- [3] 的异或总和为 3 。- [1,3] 的异或总和为 1 XOR 3 = 2 。0 + 1 + 3 + 2 = 6
示例 2:
123456789101112输入:nums = [5,1,6]输出:28解释:[5,1,6] 共有 8 个子集:- 空子集的异或总和是 0 。- [5] 的异或总和为 5 ...
2874.有序三元组的最大值 II题目给你一个下标从 0 开始的整数数组 nums 。
请你从所有满足 i < j < k 的下标三元组 (i, j, k) 中,找出并返回下标三元组的最大值。如果所有满足条件的三元组的值都是负数,则返回 0 。
下标三元组 (i, j, k) 的值等于 (nums[i] - nums[j]) * nums[k] 。
示例 1:
1234输入:nums = [12,6,1,2,7]输出:77解释:下标三元组 (0, 2, 4) 的值是 (nums[0] - nums[2]) * nums[4] = 77 。可以证明不存在值大于 77 的有序下标三元组。
示例 2:
1234输入:nums = [1,10,3,4,19]输出:133解释:下标三元组 (1, 2, 4) 的值是 (nums[1] - nums[2]) * nums[4] = 133 。可以证明不存在值大于 133 的有序下标三元组。
示例 3:
123输入:nums = [1,2,3]输出:0解释:唯一的下标三元组 (0, 1, 2) 的值是一个负数,(nums[0] - ...
2873. 有序三元组中的最大值 I题目给你一个下标从 0 开始的整数数组 nums 。
请你从所有满足 i < j < k 的下标三元组 (i, j, k) 中,找出并返回下标三元组的最大值。如果所有满足条件的三元组的值都是负数,则返回 0 。
下标三元组 (i, j, k) 的值等于 (nums[i] - nums[j]) * nums[k] 。
示例 1:
1234输入:nums = [12,6,1,2,7]输出:77解释:下标三元组 (0, 2, 4) 的值是 (nums[0] - nums[2]) * nums[4] = 77 。可以证明不存在值大于 77 的有序下标三元组。
示例 2:
1234输入:nums = [1,10,3,4,19]输出:133解释:下标三元组 (1, 2, 4) 的值是 (nums[1] - nums[2]) * nums[4] = 133 。可以证明不存在值大于 133 的有序下标三元组。
示例 3:
123输入:nums = [1,2,3]输出:0解释:唯一的下标三元组 (0, 1, 2) 的值是一个负数,(nums[0] - ...