• 2024-09-27面试经典 150 题:力扣88. 合并两个有序数组
    每周一道算法题启动题目【题目链接】【解法一】合并后排序排序后的数组自动省略0的数字,又学到了classSolution{public:voidmerge(vector<int>&nums1,intm,vector<int>&nums2,intn){//合并两个数组后排序for(inti=0;i<n;i++)
  • 2024-09-22数据结构之线性表——LeetCode:80. 删除有序数组中的重复项 II,88. 合并两个有序数组,4. 寻找两个正序数组的中位数
    80.删除有序数组中的重复项II题目描述80.删除有序数组中的重复项II给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用O(1)额外
  • 2024-09-19小米9.14笔试
    简单入门题第一题给出容量为N的背包、n个物品和c个体积为1的填充块,询问是否能够将背包刚好充满。价值与体积相同的0/1背包,结尾判断差值是否小于c#include<bits/stdc++.h>usingnamespacestd;intmain(){intT;cin>>T;while(T--){
  • 2024-09-19【LeetCode Hot 100】4. 寻找两个正序数组的中位数
    题目描述要求出两个数组的中位数,第一想法当然是将这两个数组进行归并排序,然后直接得到排序后长数组的中位数。由于本题的两个数组都是排序后的数组,因此省去了排序的步骤。这种方法的时间复杂度为\(O(m+n)\),空间复杂度由于要存储排序后的长数组,所以也是\(O(m+n)\)。有没有相对更
  • 2024-09-182321. 拼接数组的最大分数
    题目链接2321.拼接数组的最大分数思路最大子数组和-变体题解链接转换成最大子数组和(Python/Java/C++/Go)关键点无时间复杂度\(O(n)\)空间复杂度\(O(1)\)代码实现:classSolution:defmaximumsSplicedArray(self,nums1:List[int],nums2:Lis
  • 2024-09-16LeetCode题集-4 - 寻找两个有序数组的中位数,图文并茂,六种解法,万字讲解
    题目:给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为O(log(m+n))。作为目前遇到的第一个困难级别题目,我感觉这题还是挺难的,研究了三天总算研究明白了,下面就给大家分享一下这题的几种解法,请
  • 2024-09-16[Python手撕]归并排序
    classSolution:defsortArray(self,nums:List[int])->List[int]:defmerge(nums1,nums2):ifnotnums1andnotnums2:returnNoneifnotnums1:returnnums2ifnotnums2
  • 2024-09-15496. 下一个更大元素 I(leetcode)
    https://leetcode.cn/problems/next-greater-element-i/description/根据校验nums2中的元素是否存在于nums1中的时机分为不同做法classSolution{publicint[]nextGreaterElement(int[]nums1,int[]nums2){Deque<Integer>st=newArrayDeque<>();
  • 2024-09-14每日OJ_牛客_NC313 两个数组的交集
    目录牛客_NC313 两个数组的交集解析代码牛客_NC313 两个数组的交集两个数组的交集_牛客题霸_牛客网classSolution{public:/***代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可***@paramnums1int整型vec
  • 2024-09-101818. 绝对差值和
    题目链接1818.绝对差值和思路排序+二分题解链接运用「二分」找最佳替换方案关键点转换为查找最小值delta:对nums1进行排序后,从中二分查找nums2[i]的最接近值(考虑到绝对值,需要检查left&right两个位置)时间复杂度\(O(n\logn)\)空间复杂度\(O(n)\)代
  • 2024-09-08LeetCode //C - 350. Intersection of Two Arrays II
    350.IntersectionofTwoArraysIIGiventwointegerarraysnums1andnums2,returnanarrayoftheirintersection.Eachelementintheresultmustappearasmanytimesasitshowsinbotharraysandyoumayreturntheresultinanyorder. Example1:
  • 2024-09-071143. 最长公共子序列(leetcode)
    https://leetcode.cn/problems/longest-common-subsequence/description/经典题,老题回顾classSolution{publicintlongestCommonSubsequence(Stringtext1,Stringtext2){//f[i][j]表示所有在第一个序列前i个数中选择,在第二个序列前j个数中选择得到的最长
  • 2024-09-07718. 最长重复子数组(leetcode)
    https://leetcode.cn/problems/maximum-length-of-repeated-subarray/难点是在于状态定义,需要考虑到以第i个数为结尾,以第j个数为结尾的最长重复子数组这样的定义而递推就很简单,只需要发生重复时+1即可,和之前的一维的,即最长子数组一样classSolution{publicintfind
  • 2024-09-07letcode 438 找到字符串中所有字母异位词
    ##给定两个字符串,找到s中所有p的yi子串,返回这些子串的起始索引。##不考虑答案输出的顺序。异位词指由相同字母重排列形成的字符串(包括相同的字符串)。输入s=“cbaebabacd”,p=“abc”输出【0,6】输入s=”abab“,p=“ab”classsloution:defcharyiwei(self,nums1,nums2):has
  • 2024-09-06LeetCode刷题-栈
    一:栈1、栈的特性:栈和队列不一样;队列是先进先出;而队列是先进后出;后进后出!2、栈的常见操作defcreate_stack():stack=[]#在python中;通常用列表实现栈的操作returnstackdefpush(stack,data):stack.append(data)#将data压入栈中defpeek(stack):returnsta
  • 2024-09-06[Python手撕]两个升序数组的中位数
    classSolution:deffindMedianSortedArrays(self,nums1:List[int],nums2:List[int])->float:nums1_len=len(nums1)nums2_len=len(nums2)deffind(nums1,nums2,k):#time.sleep(1)ifnotnums1:
  • 2024-09-05力扣 88.合并两个有序数组
    思路:比较两个数组中最大的数(数组是非递减的),选取大的那个,从nums1的最后边赋值..../***@param{number[]}nums1*@param{number}m*@param{number[]}nums2*@param{number}n*@return{void}Donotreturnanything,modifynums1in-placeinstead.
  • 2024-09-02Leetcode——1.合并有序数组
    给你两个按非递减顺序排列的整数数组nums1_和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2_到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初
  • 2024-09-02第十章 单调栈 Part1
    目录任务739.每日温度思路496.下一个更大元素I思路503.下一个更大元素II思路任务739.每日温度给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0
  • 2024-09-01【3.5】贪心算法-解优势洗牌(类田忌赛马问题)
    一、问题        给定两个大小相等的数组A和B,A相对于B的优势可以用满足A[i]>B[i]的索引i的数目来描述。返回A的任意排列,使其相对于B的优势最大化。二、解题思路        这个问题要求我们重新排列数组A,使得在相同位置上,数组A的
  • 2024-08-29第九章 动态规划Part11
    目录任务1143.最长公共子序列思路1035.不相交的线思路53.最大子数组和思路392.判断子序列思路任务1143.最长公共子序列给定两个字符串text1和text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列,返回0。一个字符串的子序列是指这样一个新的字
  • 2024-08-29第九章 动态规划Part10
    目录任务300.最长递增子序列思路674.最长连续递增序列思路718.最长重复子数组思路任务300.最长递增子序列子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列思路dp[i]表示以索引i结尾的最
  • 2024-08-27合并两个排序的数组
     输入:nums1=[1,2,3,0,0,0],m=3nums2=[2,5,6],n=3输出:[1,2,2,3,5,6] publicvoidmergeArray(int[]nums1,intm,int[]nums2,intn){inti=m-1;intj=n-1;intindex=m+n-1;while(index>=0){
  • 2024-08-26【Leetcode 2032 】 至少在两个数组中出现的值 —— 哈希表与按位运算符(最全的注解)
    给你三个整数数组 nums1、nums2 和 nums3 ,请你构造并返回一个 元素各不相同的 数组,且由 至少 在 两个 数组中出现的所有值组成。数组中的元素可以按 任意 顺序排列。示例1:输入:nums1=[1,1,3,2],nums2=[2,3],nums3=[3]输出:[3,2]解释:至少在两个数组中出
  • 2024-08-23代码随想录算法训练营第 48 天 |LeetCode 739. 每日温度 LeetCode496.下一个更大元素 I LeetCode503.下一个更大元素II
    代码随想录算法训练营Day48代码随想录算法训练营第48天|LeetCode739.每日温度LeetCode496.下一个更大元素ILeetCode503.下一个更大元素II目录代码随想录算法训练营前言LeetCode739.每日温度LeetCode496.下一个更大元素ILeetCode503.下一个更大元素II一