算法
文章平均质量分 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 · 179 阅读 · 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 · 1011 阅读 · 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 · 167 阅读 · 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 · 316 阅读 · 0 评论 -
202.快乐数
题目:编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例:输入:19输出:true解释:12 + 92 =...原创 2020-04-16 16:27:29 · 207 阅读 · 0 评论 -
非递归实现二叉树的前中后序遍历和层次遍历
前中后序遍历的非递归实现均采用栈结构实现,层次遍历采用队列实现。先序遍历:思路:1最开始根节点入栈2循环中每次向栈中取一个节点,访问该节点。将其左右子树入栈,直至栈为空为止。注意:由于栈是先进后出的数据结构,先将右子树入栈,再将左子树入栈,才能得到中左右的访问顺序。代码: //先序遍历 public static void travelFirst(Tre...原创 2020-04-11 21:16:40 · 516 阅读 · 0 评论 -
面试题52. 两个链表的第一个公共节点《剑指offer 第二版》
题目:输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。思路:将链表按尾端来对齐,从前向后遍历找到第一个公共节点。具体实现:计算出两个链表的长度,分别为lenA,lenB。哪个长就将哪个链表向后遍历|lenA-lenB|的长度,然后两个链表同时向后遍历找到第一个公共节点。代码:/** * Definition for sing...原创 2020-04-09 14:38:16 · 242 阅读 · 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 · 168 阅读 · 0 评论 -
最长公共子序列--动态规划法求解
题目:Description给定两个字符串,返回两个字符串的最长公共子序列(不是最长公共子字符串),可能是多个。Sample Input 11A2BD3G4H56JK23EFG4I5J6K7Sample Output 123G456K23G45JK思路:先通过动态规划法求出每个位置的最长公共子序列长度的dp数组(从开始位置到当前位置)。再根据dp数组求解具...原创 2019-11-14 16:38:21 · 346 阅读 · 0 评论