使用递归 和 && && 特性:如果左边为 false,不执行右边; 左边为true继续执行右边。 传入 n return n && n + (n-1) => n + (n-...

使用递归 和 && && 特性:如果左边为 false,不执行右边; 左边为true继续执行右边。 传入 n return n && n + (n-1) => n + (n-...
通过stl的库函数max_element求数组的最大元素。
对称二叉树 没什么好说的。使用递归和迭代的思路都可 public boolean isSymmetric(TreeNode root) { if (root == nul...
我们可以遍历每根柱子,以当前柱子 i 的高度作为矩形的高,那么矩形的宽度边界即为向左找到第一个高度小于当前柱体 i 的柱体,向右找到第一个高度小于当前柱体 i 的柱体。 对于...
排序加双指针
动态规划 滚动数组
根据 当前前缀和 mod K,在哈希表中找到与之 相等 的 key 。满足条件的 历史preSumModK 出现过 n 次,就是 当前前缀和 能找到 n 个历史前缀和,与它组...
287 思路: (1) 根据数组元素个数以及数值范围的确定,可以使用二分查找在数值范围内遍历重复数。 (2) 简单说就是对应一个范围内数值 m ,如果小于等于 m 的元素个数...
思路: (1) 使用哈希表定位数据位置,使得操作时间复杂度达到 O(1) 。 (2) 使用双向链表维护数据,保证数据存储有先后顺序。 public class LRUCach...
只要保证左右两边 个数 相同,中位数就在 | 这个边界旁边产生。 如何找边界值,我们可以用二分法,我们先确定 num1 取 m1 个数的左半边,那么 num2 取 m2 = ...
动窗口的思想: 用i,j表示滑动窗口的左边界和右边界,通过改变i,j来扩展和收缩滑动窗口,可以想象成一个窗口在字符串上游走,当这个窗口包含的元素满足条件,即包含字符串T的所有...
1、通过先序遍历找到根结点A,再通过A在中序遍历的位置找出左子树、右子树 2、在A的左子树中,转步骤1 3、在A的右子树中,转步骤1 /** * Definition for...
本题最容易想到的一种方法应该就是 中心扩散法。 中心扩散法怎么去找回文串? 从每一个位置出发,向两边扩散即可。遇到不是回文的时候结束。举个例子,str = acdbbdaas...
主要思路 准备工作 vowel 表,对照表,一个元音对应一个二进制数 Map 对象,初始放入 0: -1 键值对,代表 [0,-1][0,−1] 对应的 state 为 00...
参考地址:http://www.cnblogs.com/vhua/p/idea_1.html?utm_source=tuicool&utm_medium=referral 最...
public class Solution { public boolean validPalindrome(String s) { //如果字符串为空或者长度为...
们可以将深度优先搜索的流程与拓扑排序的求解联系起来,用一个栈来存储所有已经搜索完成的节点。 对于一个节点 uu,如果它的所有相邻节点都已经搜索完成,那么在搜索回溯到 uu 的...
考虑以 ii 结尾和为 kk 的连续子数组个数,我们需要统计符合条件的下标 jj 的个数,其中 0\leq j\leq i0≤j≤i 且 [j..i][j..i] 这个子数组...