Search in Rotated Sorted Array

题意:给定一个数组和目标值,数组原本是升序排序,在下标k处做旋转操作后数组变为nums[k],nums[k+1],...,nums[n-1],nums[0],nums[1],...,nums[k-1]。要求判断数组内是否存在目标值,并且算法的时间复杂度控制在O(logn)以内。 [33. Search in Rotated Sorted Array](https://leetcode.c ...

Next Permutation

题意:给定一个数组,要求找出全排列的下一个排列,如[1,2,3]的下一个排列是[1,3,2]。 31. Next Permutation 比较数学的题目,先要找到要被交换的下标i,满足nums[i]<nums[i+1],i和它右边的某个下标j交换,j应该是比i大但是是在右边 ...

4Sum

题意:给定一个整数数组和目标值target,返回所有可能的四数组合,要求满足四个数字各不相同且四数之和等于target。 18. 4Sum 四数之和,相比三数之和多了一个数,可以多加一层循环,但是如果题目改为五数之或者六数之和呢?所以我们需要找到一个通用的解法,三数之和其实可以看作四数之和更小规模的问题,可以用递 ...

3Sum

题意:给定一组整数,找出3个整数nums[i],nums[j],nums[k],满足以下条件,三数之和等于0且i,j,k互不相同。要求返回所有不重复的组合。 15. 3Sum 思路: 要求组合不重复,可以先对数组从小到大排序,这样自然就做了除重。 一开始肯定能想到暴搜,时间复杂度是O(n3),肯定是不能 ...

3Sum Closest

题意:给定一个整数数组和一个目标值target,找出一个三数组合,使它的和最接近target,并返回这个值。 16. 3Sum Closest 这题思路和3Sum类似,在遍历时计算最接近target的值并记录下来,取最大值。 class Solution { public ...