
算法
文章平均质量分 76
skka
此人很勤快,什么都没有写
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
239. 滑动窗口最大值
题目 给定一个数组 nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 进阶: 你能在线性时间复杂度内解决此题吗? 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 --------------- ...原创 2020-09-04 18:36:48 · 256 阅读 · 0 评论 -
二叉搜索树 根据前序序列求中序序列
代码 public int[] getMidTravel(int[] a){ int[] result = new int[a.length]; getMidTravel(a,0,a.length-1,result,0); return result; } public void getMidTravel(int[] a,int begin,int end,int[] result,int offset){ if(原创 2020-08-24 18:26:04 · 1082 阅读 · 0 评论 -
79. 单词搜索
题目 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board = [ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E'] ] 给定 word = "ABCCED", 返回 true 给定 word = "SEE", 返回 true 给定 word = "AB...原创 2020-06-28 23:24:01 · 211 阅读 · 0 评论 -
703. 数据流中的第K大元素
题目 设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。 你的KthLargest类需要一个同时接收整数k 和整数数组nums的构造器,它包含数据流中的初始元素。每次调用KthLargest.add,返回当前数据流中第K大的元素。 示例: int k = 3; int[] arr = [4,5,8,2]; KthLargest kt...原创 2020-04-21 18:46:29 · 358 阅读 · 0 评论 -
202.快乐数
题目: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为1,那么这个数就是快乐数。 如果 n 是快乐数就返回 True ;不是,则返回 False 。 示例: 输入:19 输出:true 解释: 12 + 92 =...原创 2020-04-16 16:27:29 · 233 阅读 · 0 评论 -
非递归实现二叉树的前中后序遍历和层次遍历
前中后序遍历的非递归实现均采用栈结构实现,层次遍历采用队列实现。 先序遍历: 思路: 1最开始根节点入栈 2循环中每次向栈中取一个节点,访问该节点。将其左右子树入栈,直至栈为空为止。 注意:由于栈是先进后出的数据结构,先将右子树入栈,再将左子树入栈,才能得到中左右的访问顺序。 代码: //先序遍历 public static void travelFirst(Tre...原创 2020-04-11 21:16:40 · 551 阅读 · 0 评论 -
面试题52. 两个链表的第一个公共节点《剑指offer 第二版》
题目: 输入两个链表,找出它们的第一个公共节点。 如下面的两个链表: 在节点 c1 开始相交。 思路: 将链表按尾端来对齐,从前向后遍历找到第一个公共节点。 具体实现:计算出两个链表的长度,分别为lenA,lenB。哪个长就将哪个链表向后遍历|lenA-lenB|的长度,然后两个链表同时向后遍历找到第一个公共节点。 代码: /** * Definition for sing...原创 2020-04-09 14:38:16 · 287 阅读 · 0 评论 -
字符串匹配--使用KMP算法求解
仅记录下代码,可求出所有匹配字符串的首字符下标 public class Main3 { public static void main(String[] args) { char[] s = new String("AABAACAADAABAABA").toCharArray(); char[] t = new String("AABA").toCh...原创 2019-11-30 17:09:43 · 195 阅读 · 0 评论 -
最长公共子序列--动态规划法求解
题目: Description 给定两个字符串,返回两个字符串的最长公共子序列(不是最长公共子字符串),可能是多个。 Sample Input 1 1A2BD3G4H56JK 23EFG4I5J6K7 Sample Output 1 23G456K 23G45JK 思路: 先通过动态规划法求出每个位置的最长公共子序列长度的dp数组(从开始位置到当前位置)。再根据dp数组求解具...原创 2019-11-14 16:38:21 · 386 阅读 · 0 评论