上一页 1 2 3 4 5 6 7 8 9 10 ··· 38 下一页
摘要: leetcode 594. Longest Harmonious Subsequence 最长和谐子序列(简单).md 题目给我们一个数组,让我们找出最长的和谐子序列,和谐子序列就是序列中数组的最大最小差值均为1,这里只让我们求长度,而不需要返回具体的子序列。所以我们可以对数组进行排序,实际上只要找出来相差为1的两个数的总共出现个数就是一个和谐子序列长度了。 阅读全文
posted @ 2022-08-24 23:35 okokabcd 阅读(57) 评论(0) 推荐(0) 编辑
摘要: leetcode 697. Degree of an Array 数组的度(简单) 首先给数组的度下一个定义,给一个数组,某个或某些数字出现最多的次数为该数组的度。题目要求我们找到最短的子数组使其和原数组拥有相同的度。 阅读全文
posted @ 2022-08-23 20:19 okokabcd 阅读(50) 评论(0) 推荐(0) 编辑
摘要: leetcode 503. Next Greater Element II 下一个更大元素 II(中等) 我们可以用单调栈来解决这个问题,因为是循环数组,我们遍历两倍的数组,然后对坐标i取余,取出数字,如果此时栈不为空,且栈顶元素小于当前数字,说明当前数字就是栈顶元素的右边第一个较大的数,此时建立二者的映射并且去除当前栈顶元素,最后如果i小于n,则把i压入栈。因为res的长度必须是n,超过n的部分我们只是为了给之前栈中的数字找较大值,所以不能压入栈。 阅读全文
posted @ 2022-08-22 21:35 okokabcd 阅读(53) 评论(0) 推荐(0) 编辑
摘要: leetcode 560. Subarray Sum Equals K 和为 K 的子数组(中等) 第三个:定义一个hash来保存sum出现的次数,这样累加sum-k出现的次数就是答案了 阅读全文
posted @ 2022-08-21 22:37 okokabcd 阅读(51) 评论(0) 推荐(0) 编辑
摘要: leetcode 225. Implement Stack using Queues 用队列实现栈(简单) 使用队列,每次把新加入的数插到前头,这样队列保存的顺序和栈的顺序是相反的,它们的取出方式也是反的,那么反反得正,就是我们需要的顺序了。我样可以直接对队列q操作,在队尾加入了新元素x后,将x前面所有的元素都安排好顺序取出并加到队列到末尾,这样下次就能直接取出x了,符合栈的后入先出的特性,其他三个操作也就是直接调用队列的操作即可。 阅读全文
posted @ 2022-08-19 16:55 okokabcd 阅读(52) 评论(0) 推荐(0) 编辑
摘要: leetcode 304. Range Sum Query 2D - Immutable 二维区域和检索 - 矩阵不可变(中等) 这道题让求一个二维区域和的检索,我们需要建立一个累计区域和的数组,然后根据边界值的加减法来快速求出给定区域之和。这里我们维护一个二维数组dp,其中dp[i][j]表示累计区间(0, 0)到(i, j)这个矩形区间所有的数字之和,那么此时如果我们想要快速求出(r1, c1)到(r2, c2)的矩形区间时,只需要dp[r2][c2]-dp[r2][c1-1]-dp[r1-1][c2]+dp[r1-1][c1-1]即可,下面用了辅助行和辅助列,所以有些许变动。 阅读全文
posted @ 2022-08-18 23:37 okokabcd 阅读(51) 评论(0) 推荐(0) 编辑
摘要: leetcode 303. Range Sum Query - Immutable 区域和检索 - 数组不可变(简单) 这道题让我们检索一个数组的某个区间的所有数字之和,题目中给了两个条件,首先数组内容不会变化,其次有很多的区间和检索。那么我们用传统的遍历相加来求每次区间和检索,十分的不高效,而且无法通过OJ。所以这道题的难点就在于是否能想到来用建立累计直方图的思想建立一个累计和的数组dp,其中dp[i]表示[0,i]区间的数字之和,那么[i,j]就可以表示为dp[j]-dp[i-1],这里要注意一下当i=0时,直接返回dp[j]即可。 阅读全文
posted @ 2022-08-17 21:03 okokabcd 阅读(46) 评论(0) 推荐(0) 编辑
摘要: leetcode 128. Longest Consecutive Sequence 最长连续序列(中等) 可以把所有数字放到一个哈希表,然后不断地从哈希表中任意取一个值,并删除掉其之前之后的所有连续数字,然后更新目前的最长连续序列长度。重复这一过程,就可以找到所有的连续数字序列,顺便找出最长的。 阅读全文
posted @ 2022-08-16 22:01 okokabcd 阅读(54) 评论(0) 推荐(0) 编辑
摘要: leetcode 239. Sliding Window Maximum 滑动窗口最大值(困难) 利用一个双端队列,在队列中存储元素在数组中的位置,并且维持队列的严格递减,也就是说维持队列首元素是最大的,当遍历到一个新元素时,如果队列里有比当前元素小的,就将其移除队列,以保证队列的递减。当队列元素位置之差大于k,就将队首元素移除。 阅读全文
posted @ 2022-08-15 20:11 okokabcd 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 《Effective Java》第54条:返回零长度的数组或者集合,而不是null 简而言之,永远不要返回null,而是返回一个零长度的数组或集合。如果返回null,那样会使API更难以使用,也列容易出错,而且没有任何性能优势。 阅读全文
posted @ 2022-08-14 22:05 okokabcd 阅读(111) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 38 下一页