首页 > 其他分享 >leetcode 1679

leetcode 1679

时间:2023-05-09 17:13:12浏览次数:45  
标签:right nums ++ value 1679 key freq leetcode

1.排序双指针

先排序

sort(nums.begin(),nums.end());

在双指针查找

while(left<right){
  if(nums[left]+nums[right]<k){
    left++;   
     }else if(nums[left]+nums[right]>k){
        right--;
    }else{
        left++;
        right--;
        count++;
}
}

2.哈希表

记录vector值出现的次数

unordered_map<int ,int >freq;//记录vector值出现的次数
for(int num:nums){
  ++freq[num];      
}

值刚好为目标值一半的做特殊处理

for(auto [key,value]:freq){
  if(key*2==k){
     ans+=value/2;//向下取整     
  }else if(key*2<k]&&freq.count(k-key)){//也可以计算key*2>k,目的是避免重复计算
      ans+=min(value,freq[k-key);          
   }      
}    

 

标签:right,nums,++,value,1679,key,freq,leetcode
From: https://www.cnblogs.com/wangkaixin-yy/p/17385646.html

相关文章

  • leetcode-349. 两个数组的交集
    returnnums1.Intersect(nums2);题意:给定两个数组,编写一个函数来计算它们的交集。c#可以用linq自带的方法返回,顺便看了下微软的内部实现:privatestaticIEnumerable<TSource>IntersectIterator<TSource>(IEnumerable<TSource>first,IEnumerable<TSource>second,IEquali......
  • #yyds干货盘点# LeetCode面试题:不同的二叉搜索树 II
    1.简述:给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。 示例1:输入:n=3输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,null,1]]示例2:输入:n=1输出:[[1]]2.代......
  • #yyds干货盘点# LeetCode程序员面试金典:跳跃游戏 II
    题目:给定一个长度为 n 的 0索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i+j] 处:0<=j<=nums[i] i+j<n返回到达 nums[n-1] 的最小跳跃次数。生成的......
  • 2023-05-08:我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符, 并
    2023-05-08:我们定义了一个函数countUniqueChars(s)来统计字符串s中的唯一字符,并返回唯一字符的个数。例如:s="LEETCODE",则其中"L","T","C","O","D"都是唯一字符,因为它们只出现一次,所以countUniqueChars(s)=5。本题将会给你一个字符串s,我们需要返回countUnique......
  • LeetCode198. 打家劫舍
    classSolution{public:intf[110],g[110];//分别表示第i个房屋偷,不偷的最大价值introb(vector<int>&nums){intn=nums.size();for(inti=1;i<=n;i++){g[i]=max(f[i-1],g[i-1]);f[i]=g[i-1]+nums[i-1];......
  • leetcode 101 对称二叉树 Simple
    题目给你一个二叉树的根节点root,检查它是否轴对称。输入:root=[1,2,2,3,4,4,3]输出:true输入:root=[1,2,2,null,3,null,3]输出:false题解考察二叉树的遍历,使用广度优先BFS方法.BFS的关键在于使用队列,遍历树时,读到的节点先入队,再出队,出队时读取值,放入结......
  • LeetCode 473 火柴拼正方形
    LeetCode|473.火柴拼正方形你将得到一个整数数组matchsticks,其中matchsticks[i]是第i 个火柴棒的长度。你要用所有的火柴棍 拼成一个正方形。你不能折断任何一根火柴棒,但你可以把它们连在一起,而且每根火柴棒必须使用一次。如果你能使这个正方形,则返回true,否则返......
  • LeetCode 周赛 344(2023/05/07)手写递归函数的固定套路
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。今天下午有力扣杯战队赛,不知道官方是不是故意调低早上周赛难度给选手们练练手。往期周赛回顾:LeetCode单周赛第343场·结合「下一个排列」的贪心构造问题周赛概览T1.找出不......
  • LeetCode 15. 三数之和
    题目链接:LeetCode15.三数之和题意:在给定的数组中,找出三个数(三个数不重复)使得他们相加的和为0,同时答案中不能有重复的答案解题思路:完整代码如下://双指针做法首先要有序//解法一最优解,双指针+排序functhreeSum(nums[]int)[][]int{varres[][]intsor......
  • LeetCode 18. 四数之和
    题目链接:LeetCode18.四数之和题意:本题思路与LeetCode15.三数之和思路完全一样,只是多加了一层for循环解题思路:完整代码如下:funcfourSum(nums[]int,targetint)[][]int{//四元组,四个元素都不相同,并且结果要去重varres[][]intsort.Ints(nums)......