Loading

09 2020 档案

摘要:判断是否是二叉搜索树 通过取值范围判断,递归过程中判断; 判断是否是完全二叉树。 通过一个层次遍历判断,具体思路是: 遍历过程中,第一次遇到了空节点,则需要通过标记记录。 只要非空,就要判断前面是否出现了空(标记记录); 出现了空,则不是完全二叉树; 同时将两个子节点入队(不管是否为空都行); 完全 阅读全文
posted @ 2020-09-29 19:54 Sidewinder 阅读(382) 评论(0) 推荐(0)
摘要:最小编辑距离(动态规划问题) 题目描述 给定两个字符串str1和str2,再给定三个整数ic,dc和rc,分别代表插入、删除和替换一个字符的代价,请输出将str1编辑成str2的最小代价。 定义子问题: dp[i][j] 表示 长度为i的第一个字符串 编辑成长度为j的第二个字符串消耗的代价; 当st 阅读全文
posted @ 2020-09-29 16:04 Sidewinder 阅读(473) 评论(0) 推荐(0)
摘要:题目描述 给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数) 解法一: 排序法 import java.util.*; public class Solution { /** * max increasing subsequence * 阅读全文
posted @ 2020-09-28 19:35 Sidewinder 阅读(489) 评论(0) 推荐(0)
摘要:使用树组表示的完全二叉树的下表有如下规律: 0 1 2 3 4 5 6 7 8 ... 其中针对于k节点,其父节点是 (k-1)/2 (注意: 0节点除外) 对于k节点,其两个儿子节点分布是: left = 2*k + 1 ; right = 2 *k + 2; 大根堆两个主要算法: 向上调整算法: 阅读全文
posted @ 2020-09-26 01:35 Sidewinder 阅读(1165) 评论(0) 推荐(0)
摘要:给定入栈序列,求所有可能出栈结果 这是一道招银网络的笔试题。 考试的时候有点懵逼,不知怎么这就死循环了;。Orz,挺简单的一道题目,一紧张可能就写不出来了。 // 输入序列 4 1 2 3 4 //所有输出结果,按字典序进行排列; 1 2 3 4,1 2 4 3,1 3 2 4 1 3 4 2,1 阅读全文
posted @ 2020-09-25 20:35 Sidewinder 阅读(323) 评论(0) 推荐(0)
摘要:判断是否是回文链表; import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * * @param head List 阅读全文
posted @ 2020-09-23 01:24 Sidewinder 阅读(212) 评论(0) 推荐(0)
摘要:自己实现队列(哑头结点+ 哑尾结点实现 + 双向队列实现)(快速存储) + HashMap快速查找(索引): 主要思路 get: 当缓存中不存在,则返回-1; 当缓存中存在,则队列中移除,添加到双端队列末尾,返回node.value; put:思路: 判断是否存在: 复用get方法:不存在返回-1, 阅读全文
posted @ 2020-09-22 21:26 Sidewinder 阅读(377) 评论(0) 推荐(0)