• 2024-07-02(nice!!!)LeetCode 3164. 优质数对的总数 II(数组、哈希表)
    3164.优质数对的总数II思路:先找出可以被k整除的nums[i].方法一:统计因子。1、找出数组nums1每个元素的因子,用哈希表来记录每个因子出现的次数。然后再遍历数组nums2进行累加即可。classSolution{public:constintN=1e6+10;longlongnumberOfPairs(vec
  • 2024-06-22LeetCode 2542. 最大子序列的分数(贪心、小顶堆)
    2542.最大子序列的分数思路:先对nums2按降序排列,然后遍历nums2的最小值,同时在区间[0,i]中选中k个最大的nums1即可。然后找出最大的ansclassSolution{public:typedefpair<int,int>PII;longlongmaxScore(vector<int>&nums1,vector<int>&nums2,intk)
  • 2024-06-16代码随想录算法训练营第六十二天 | 739.每日温度、496.下一个更大元素 I、503.下一个更大元素II
    739.每日温度文字讲解:代码随想录视频讲解:单调栈,你该了解的,这里都讲了!LeetCode:739.每日温度_哔哩哔哩_bilibili解题思路思路一:暴力双循环O(n^2)思路二:单调栈(用来找到右边或者左边第一个比它大的元素)元素:利用一个栈来存下标i,用T[i]来做映射顺序(递增还是递减):如果是递增是
  • 2024-06-13LeetCode:经典题之88 题解与延伸
    系列目录88.合并两个有序数组目录系列目录88.合并两个有序数组C++C语言88.合并两个有序数组
  • 2024-06-13【堆】Leetcode 373. 查找和最小的 K 对数字【中等】
    查找和最小的K对数字给定两个以非递减顺序排列的整数数组nums1和nums2,以及一个整数k。定义一对值(u,v),其中第一个元素来自nums1,第二个元素来自nums2。请找到和最小的k个数对(u1,v1),(u2,v2)…(uk,vk)。示例1:输入:nums1=[1,7,11],nums
  • 2024-06-11代码随想录算法训练营第七天 |
    454.四数相加题目:给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0解题:思路:使用map,key为a+b,value为出现次数。再遍历k、l寻找0-a-b。关键:遍历
  • 2024-06-09代码随想录算法训练营第六天
    哈希表常见的三种哈希结构:数组、set(集合)、map(映射)要快速判断一个元素是否出现集合里,考虑哈希法!242.有效的字母异位词题目:给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。解题:
  • 2024-06-04【每周例题】 C++ 力扣 优势洗牌
    优势洗牌题目优势洗牌 题目分析1.采用双指针方法进行匹配2.依照题目所说,采用索引,首先需要填充索引,然后对索引进行升序排序。2.使用双指针进行匹配如果nums1[idx1[i]](即当前nums1中的元素)大于nums2[idx2[left]](即nums2中的当前最小元素),则将nums1[idx1[i]]赋值给ans[idx2[
  • 2024-06-03718-Maximum length of repeated subarry
    题目描述链接:https://leetcode.com/problems/maximum-length-of-repeated-subarray/description/Giventwointegerarrays nums1 and nums2,return themaximumlengthofasubarraythatappearsin both arrays.解释:给定两个数组nums1和nums2,求两个数组的最长公
  • 2024-05-30Leecode热题100---二分查找--4:寻找两个正序数组的中位数
    题目:给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。解法1、暴力解法(归并)思路:合并nums1,nums2为第三个数组排序第三个数组按下标,找出中位数classSolution{public: doublefindMedianSortedArrays(vec
  • 2024-05-294. 寻找两个正序数组的中位数
    给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为O(log(m+n))。示例1:输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数组=[1,2,3],中位数2示例2:输入:nums1=[1,2],nums2=
  • 2024-05-28【LeetCode算法】第88题:合并两个有序数组
    目录一、题目描述二、初次解答三、官方解法四、总结一、题目描述二、初次解答1.思路:首次想到的解法:定义一个m+n长度的辅助数组,从头遍历这两个数组,谁小就放进辅助数组中并且对应往后走,最后使用memcpy函数将辅助数组内容拷贝到nums1中。这种解法容易想到,但是空间复杂
  • 2024-05-28leedcode【349】. 两个数组的交集——Java解法
    Problem: 349.两个数组的交集题目思路解题方法复杂度Code效果题目给定两个数组nums1和nums2,返回它们的交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。示例1:输入:nums1=[1,2,2,1],nums2=[2,2]输出:[2]示例2:输入:nums1=[
  • 2024-05-2757天【代码随想录算法训练营34期】第十章 单调栈part01
    739.每日温度单调栈指的是只增加或只减少的stack,相当于一个memoclassSolution:defdailyTemperatures(self,temperatures:List[int])->List[int]:answer=[0]*len(temperatures)stack=[0]foriinrange(1,len(temperatures)):
  • 2024-05-26100321. 优质数对的总数 II
    题目描述给你两个整数数组nums1和nums2,长度分别为n和m。同时给你一个正整数k。如果nums1[i]可以被nums2[j]*k整除,则称数对(i,j)为优质数对(0<=i<=n-1,0<=j<=m-1)。返回优质数对的总数。思路nums1[i]可以被nums2[j]*k整除,那么nums2[j]*k
  • 2024-05-17力扣-96. 下一个更大元素 I
    1.题目题目地址(496.下一个更大元素I-力扣(LeetCode))https://leetcode.cn/problems/next-greater-element-i/题目描述nums1 中数字 x 的下一个更大元素是指 x 在 nums2中对应位置右侧的第一个比 x 大的元素。给你两个没有重复元素的数组 nums1和 nums
  • 2024-05-17Leedcode-下一个更大元素 I
    自己写的:classSolution:defnextGreaterElement(self,nums1:List[int],nums2:List[int])->List[int]:res=[]#结果列表,用于存储每个nums1中元素在nums2中的下一个更大元素num1_ptr=0#指向nums1当前元素的指针num2_ptr=0#
  • 2024-05-14LeetCode 2956. Find Common Elements Between Two Arrays
    原题链接在这里:https://leetcode.com/problems/find-common-elements-between-two-arrays/description/题目:Youaregiventwo 0-indexed integerarrays nums1 and nums2 ofsizes n and m,respectively.Considercalculatingthefollowingvalues:Thenumberof
  • 2024-05-09【每日一题】寻找两个正序数组的中位数
    4.寻找两个正序数组的中位数给定两个大小分别为m和n的正序(从小到大)数组 nums1和 nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为O(log(m+n))。示例1:输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数组=[1,2,3],中位数2示例
  • 2024-05-012024-05-01:用go语言,给定两个长度为偶数n的整数数组nums1和nums2, 分别移除它们各自的一半元素, 将剩下的元素合并成集合s。 找出集合s中可能包含的最多元素数量。 输入:nums
    2024-05-01:用go语言,给定两个长度为偶数n的整数数组nums1和nums2,分别移除它们各自的一半元素,将剩下的元素合并成集合s。找出集合s中可能包含的最多元素数量。输入:nums1=[1,2,3,4,5,6],nums2=[2,3,2,3,2,3]。输出:5。答案2024-05-01:chatgpt题目来自leetcode3002。大体
  • 2024-04-13LeetCode三则
    1.给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为O(log(m+n))。示例1:输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数组=[1,2,3],中位数2示例2:输入:nums1=[1,2],nums2=[3,
  • 2024-04-11leedcode-两个数组的交集
    自己写的:fromtypingimportList#导入List类型,用于函数参数和返回类型的注解classSolution:defintersection(self,nums1:List[int],nums2:List[int])->List[int]:#初始化一个空列表,用于存储两个列表的交集mylist=[]#遍历num
  • 2024-04-09两个链表的交集(力扣349)
    题目如下:给定两个数组 nums1 和 nums2 ,返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。示例1:输入:nums1=[1,2,2,1],nums2=[2,2]输出:[2]示例2:输入:nums1=[4,9,5],nums2=[9,4,9,8,4]输出:[9,4]解释:[4
  • 2024-04-08leetcode:合并两个有序数组
    voidmerge(int*nums1,intnums1Size,intm,int*nums2,intnums2Size,intn){intl1=m-1;intl2=n-1;intl3=m+n-1;while(l1>=0&&l2>=0)//只要有一个条件为假就跳出循环{if(num1[l1]<num2[l2]){num1[l3--
  • 2024-04-05LeetCode in Python 88. Merge Sorted Array (合并两个有序数组)
    合并有序数组也有两种方法,区别是空间复杂度不同。第一种,重新开辟一个数组空间,大小为O(m+n),另外需要三个指针分别指向两个有序数组和新开辟的数组,依次判断两个数组内元素大小,不断更新指针即可。第二种,无需单独开辟空间,在第一个数组(该数组空间足够存放两个数组总长的数据)内进行