营销网站建设制作设计,宁波做网站优化价格,做网站一般做几个尺寸,郑州网站建设贴吧题目
给你一个整数数组 nums 和一个整数 k 。
每一步操作中#xff0c;你需要从数组中选出和为 k 的两个整数#xff0c;并将它们移出数组。
返回你可以对数组执行的最大操作数。
示例 1#xff1a;
输入#xff1a;nums [1,2,3,4], k 5 输出#xff1a;2 解释你需要从数组中选出和为 k 的两个整数并将它们移出数组。
返回你可以对数组执行的最大操作数。
示例 1
输入nums [1,2,3,4], k 5 输出2 解释开始时 nums [1,2,3,4]
移出 1 和 4 之后 nums [2,3]移出 2 和 3 之后 nums [] 不再有和为 5 的数对因此最多执行 2 次操作。 示例 2
输入nums [3,1,3,4,3], k 6 输出1 解释开始时 nums [3,1,3,4,3]
移出前两个 3 之后nums [1,4,3] 不再有和为 6 的数对因此最多执行 1 次操作。
提示
1 nums.length 105 1 nums[i] 109 1 k 109
解决思路
其实就是看有几对和为K 那这样的话 用Map吧 记录每个数的个数 然后计算 has 确实算是个方法 不用排序了
解决方法 fun maxOperations(nums: IntArray, k: Int): Int {var map mutableMapOfInt, Int()var result 0nums.forEach {map[it] map.getOrDefault(it, 0) 1}nums.forEach {if (it k - it map[it]!! 2) {returnforEach}if (map.contains(k - it) map[k - it]!! 1 map[it]!! 1) {resultmap[it] map[it]!! - 1map[k - it] map[k - it]!! - 1}}return result}总结
短视频兴起了我却错过了我那个最无畏最不要脸的年代。
别搞那么没用的包括但不限于无用的言论、无用的抱怨、无用的脾气、无用的垂头丧气 问问自己 这个事情 你反感有用吗这是工作你怎么样都要做