上一页 1 2 3 4 5 6 7 ··· 20 下一页
摘要: 首先要了解什么是Kadane's 算法。 这个算法通常被用于在一个数组A中寻找到一个连续子数组最大和的值。 public int maxSubarraySumCircular(int[] A) { int N = A.length; int ans = A[0], cur = A[0]; for ( 阅读全文
posted @ 2020-05-16 00:31 yawenw 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 字典树结点结构: class Node{ boolean isWord; TreeMap<Character, Node> next; } 字典树的应用: 1.自动补全 2.拼写检查 3.IP 路由 4.预测文字 字典树的局限: 空间占用大。优化方法有压缩字典树。 字典树主要有如下三点性质: 1. 阅读全文
posted @ 2020-05-14 20:58 yawenw 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 所谓单调栈,即栈中的元素单调递增 或 单调递减 本题用单调栈将数组维护成一个单调递增的集合。用k记录删除的元素个数。 特别注意三点: 1.如果num本身为递增序列,需要从从栈中弹出k个元素。 2.需要删除队头为0的元素,可以初始化一个为true的bool型变量,一旦开始的头部不等于0,bool型变量 阅读全文
posted @ 2020-05-13 20:53 yawenw 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 本人写代码,无论是用到栈结构,队列结构,都习惯用deque,因为deque支持在头部和尾部插入或删除元素。 但deque有 ArrayDeque 和 LinkedList 两种框架。 主要区别在于LinkedList支持插入null元素 这在下面这道leetcode题Symmetric Tree得以 阅读全文
posted @ 2020-05-13 12:09 yawenw 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 本题有两种解法, 第一种为暴力法,线性搜索。 但因为题目为递增序列中查找一个数,自然会有第二种方法:二分搜索法。 二分搜索既可以调用JAVA自身的函数 Arrays.binarySearch(),也可以自己手写。 int a[] = new int[] {1, 3, 4, 6, 8, 9}; int 阅读全文
posted @ 2020-05-12 16:47 yawenw 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 1.DFS 2.BFS class Solution { public int[][] floodFill(int[][] image, int sr, int sc, int newColor) { int precolor = image[sr][sc]; if(precolor != newC 阅读全文
posted @ 2020-05-11 18:22 yawenw 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 本题用两个数组分别记录每个结点的入度和出度。如果结点入度位N-1且出度为0,则该结点是法官。 JAVA class Solution { public int findJudge(int N, int[][] trust) { if(trust.length < N-1) return -1; in 阅读全文
posted @ 2020-05-10 17:24 yawenw 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 专门把这道溢出的题目写一遍,是因为我发现很多解法都存在一定的问题。 1.首先题目要求只能用32位有符号整数存储,所以不能用long长整型。 2.还有些解答用了abs绝对值处理。但需要考虑最小的负数取绝对值后会比最大的正数多1。所以要在取绝对值之前加一个判断语句。 JAVA class Solutio 阅读全文
posted @ 2020-05-10 10:25 yawenw 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 两种解法: 1.单独判断1,二分法在范围[2,num/2]搜索,如果平方与num相等,则返回true 2.牛顿法 JAVA class Solution { public boolean isPerfectSquare(int num) { if(num == 1) return true; lon 阅读全文
posted @ 2020-05-10 09:35 yawenw 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 本题用数学方法做即可。 两点确定一条直线,如果点的数量<=2,这些点一定在一条线上。 对于两个以上的点:[[1, 2], [2, 3], [3, 4]] 可以判断斜率是否相等(3-2)/(2-1) == (4-3)/(3-2)。但计算机除法分母不能为0,所以用交叉相乘的方法 (3-2)*(3-2) 阅读全文
posted @ 2020-05-08 15:27 yawenw 阅读(242) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 20 下一页