一、题目大意https://leetcode.cn/problems/kth-largest-element-in-an-array给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。****示例1:输入:[3,2,1,5,6,4]和k=2输出:5示例 2:输入:[3,2,3,1,2,4,5,5,6]和k=4输出:4提示:1-104 二、解题思路理解题意:在一个未排序的数组中,找到第k大的数字。输入一个数组和一个目标k,输出第k大的数字,题目黑夜一定有解。解题思路:快速选择一般用于解决k-thElement问题,
题目给你一个由n个整数组成的数组 nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a],nums[b],nums[c],nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0a、b、c和d互不相同nums[a]+nums[b]+nums[c]+nums[d]==target你可以按任意顺序返回答案。示例1:输入:nums=[1,0,-1,0,-2,2],target=0输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]示例2:输入:nums=[2,2,2,2,2],target=8输出:[[2,2,2,
一、四数相加Ⅱ454.四数相加II1.方法概述首先定义一个map,key放a和b两数之和,value放a和b两数之和出现的次数。遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中。定义int变量count,用来统计a+b+c+d=0出现的次数。在遍历大C和大D数组,找到如果0-(c+d)在map中出现过的话,就用count把map中key对应的value也就是出现次数统计出来。最后返回统计值count就可以了。2、具体实现Java实现点击查看代码classSolution{publicintfourSumCount(int[]nums1,int[]nums2,int[]num
一、题目给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/two-sum二、解法:classSolution{public:vectortwoSum(vector&nums,intt
LC704-二分查找给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4复制代码示例2:输入:nums=[-1,0,3,5,9,12],target=2输出:-1解释:2不存在nums中因此返回-1复制代码解题思路:设定头尾双指针,设立中间值,拿中间值与目标值进行对比。找到就输出中间值,没有找到就输出-1.代码:varsearch=function(nums,target){
一、四数相加Ⅱ454.四数相加II1.方法概述首先定义一个map,key放a和b两数之和,value放a和b两数之和出现的次数。遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中。定义int变量count,用来统计a+b+c+d=0出现的次数。在遍历大C和大D数组,找到如果0-(c+d)在map中出现过的话,就用count把map中key对应的value也就是出现次数统计出来。最后返回统计值count就可以了。2、具体实现Java实现点击查看代码classSolution{publicintfourSumCount(int[]nums1,int[]nums2,int[]num
一、题目给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/two-sum二、解法:classSolution{public:vectortwoSum(vector&nums,intt
LC704-二分查找给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4复制代码示例2:输入:nums=[-1,0,3,5,9,12],target=2输出:-1解释:2不存在nums中因此返回-1复制代码解题思路:设定头尾双指针,设立中间值,拿中间值与目标值进行对比。找到就输出中间值,没有找到就输出-1.代码:varsearch=function(nums,target){
55.跳跃游戏LeetCode题目要求给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例输入:nums=[2,3,1,1,4]输出:true解释:可以先跳1步,从下标0到达下标1,然后再从下标1跳3步到达最后一个下标。解题思路经过跳跃分析,如下图都可以到达尾部:而实际上要到达数组的终点,我们每次都以最大值来跳跃,且要把这个覆盖的范围不断的累加,直到覆盖数组长度,那么就满足条件上代码classSolution{publicbooleancanJump(int[]nums){//本题的跳跃从下标0开始跳跃
55.跳跃游戏LeetCode题目要求给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例输入:nums=[2,3,1,1,4]输出:true解释:可以先跳1步,从下标0到达下标1,然后再从下标1跳3步到达最后一个下标。解题思路经过跳跃分析,如下图都可以到达尾部:而实际上要到达数组的终点,我们每次都以最大值来跳跃,且要把这个覆盖的范围不断的累加,直到覆盖数组长度,那么就满足条件上代码classSolution{publicbooleancanJump(int[]nums){//本题的跳跃从下标0开始跳跃