![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Arrays分类
若宝贝的小飞象
这个作者很懒,什么都没留下…
展开
-
Arrays分类算法-Min Rewards(待完成)
题目要求** 解法一:**建立空数组存储结果,全部初始化为1。 从头开始遍历数组,如果出现比之前一个小的数,则反向继续遍历,将原来的分数进行更新(更新过程中需要比较新分数和原来久分数的大小,取最大值)。如果出现比之前的数组大,则原有的数+1。继续下一个数的判断。Time: O(n^2) Space: O(n)代码:import java.util.*;class Program { public static int minRewards(int[] scores) { // Wr原创 2021-01-31 13:52:41 · 114 阅读 · 0 评论 -
Arrays分类算法-Largest Range
题目要求解法一:可以通过sort的方式,简单找出最长的连续的序列。但是本题不可sort。因此为了查找高效,采用hashMap来存已知数字,别对数字是否被用过进行标记,分别向前和向后找出存在的连续序列。Time: O(n) Space: O(n)代码1:import java.util.*;class Program { public static int[] largestRange(int[] array) { // Write your code here. if (arr原创 2021-01-21 11:51:59 · 139 阅读 · 1 评论 -
Arrays分类算法-Four Number Sum(待完成)
题目要求解法一:与3Sum的解法相同,需要加一层循环, 而且需要考虑[-2,-1,-1,1,1,2,2]数组里面有重复数字的可能性。Time: O(n^3) Space: O(n)代码:import java.util.*;class Program { public static List<Integer[]> fourNumberSum(int[] array, int targetSum) { // Write your code here. if (arr原创 2021-01-21 10:24:29 · 103 阅读 · 0 评论 -
Arrays分类算法-Spiral Traverse(待完成)
题目要求corner case:解法一:Iterator解法Time: O(n) Space: O(n)代码:import java.util.*;class Program { public static List<Integer> spiralTraverse(int[][] array) { // Write your code here. ArrayList<Integer> res = new ArrayList<>();原创 2021-01-21 05:16:36 · 221 阅读 · 1 评论 -
Arrays分类算法-Subarray Sort
题目要求解法一:我们从乱序的序列出发,在乱序的序列中找出最大和最小的值,然后分别从原数组的头和尾部进行遍历,找出乱序最大最小值需要插入的点,就是需要重排序的范围.Time: O(n) Space: O(1)代码:import java.util.*;class Program { public static int[] subarraySort(int[] array) { // Write your code here. if (array == null || array.原创 2021-01-21 05:11:39 · 251 阅读 · 0 评论 -
Arrays分类算法-First Duplicate Value
题目要求解法一:暴力解法,找到数组中相同的两个数,然后返回index最小的那个(最早出现的那个)Time: O(n^2) Space: O(1)代码:import java.util.*;class Program { public int firstDuplicateValue(int[] array) { // Write your code here. if (array == null || array.length < 2) return -1; int原创 2021-01-21 04:42:06 · 151 阅读 · 0 评论 -
Arrays分类算法-ArrayOf Products
题目要求解法一:非常普通的暴力解法,头铁硬算出每个乘积,然后存入数组,毫无新意。Time: O(n^2) Space: O(n)代码:import java.util.*;class Program { public int[] arrayOfProducts(int[] array) { // Write your code here. if (array == null || array.length < 2) return array; int[] res =原创 2021-01-21 03:53:42 · 177 阅读 · 0 评论 -
Arrays分类算法-Longest Peak
题目要求解法一:本题我们可以找一个递增紧跟一个递减序列来判定一个peak序列的长度。但是这么做要记录的变化转态很多,不好实现。因此我们可以找到性质是Peak的点(大于前一个数和后一个数),然后以peak为点向两边分别展开,数出peak序列的长度,别筛选出最大的序列长度。Time: O(n) Space: O(1)代码1:import java.util.*;class Program { public static int longestPeak(int[] array) { //原创 2021-01-21 02:38:03 · 129 阅读 · 0 评论 -
Arrays分类算法-Monotonic Array
题目要求解法一:Time: O(n^2]) Space: O(1)代码:原创 2021-01-20 13:18:13 · 192 阅读 · 1 评论 -
Arrays分类算法-Move Element To End
题目要求解法一:set两个,一头一尾,各自判断是否等于targetToMove, 然后进行逻辑判断进行交换或者移动。Time: O(n) Space: O(1)代码1:import java.util.*;class Program { public static List<Integer> moveElementToEnd(List<Integer> array, int toMove) { // Write your code here. if (a原创 2021-01-20 12:44:34 · 115 阅读 · 0 评论 -
Arrays分类算法-Smallest Difference
题目要求解法一:暴力解法,遍历每一种可能性。从而求出最小差值的组合。Time: O(n^2) Space: O(1)代码:import java.util.*;// Brute forceclass Program { public static int[] smallestDifference(int[] arrayOne, int[] arrayTwo) { // Write your code here. if (arrayOne == null || arrayTwo =原创 2021-01-20 12:31:47 · 120 阅读 · 0 评论 -
Arrays分类算法-Three Number Sum
题目要求解法一:与two sum的思路相同,可以用二分法搜索。只是left + right的值等于target - sum.Time: O(n^2) Space: O(1)代码:import java.util.*;class Program { public static List<Integer[]> threeNumberSum(int[] array, int targetSum) { // Write your code here. if (array =原创 2021-01-18 13:36:24 · 110 阅读 · 0 评论 -
Arrays分类算法-Validate Subsequence
题目要求解法一:通过双指针,while loop 一个一个比较两数组数字的大小,最后看sequence是否都被包含在array中。Time: O(n) Space: O(1)代码:import java.util.*;class Program { public static boolean isValidSubsequence(List<Integer> array, List<Integer> sequence) { // Write your cod原创 2021-01-18 13:30:07 · 131 阅读 · 0 评论 -
Arrays分类算法-Two Number Sum
Arrays原创 2021-01-18 13:00:58 · 80 阅读 · 0 评论