随笔分类 -  算法分析

摘要:java中基本类型数组[]和ArrayList之间的互相转换在算法实现过程中经常使用。 注意:不行的话就直接进行循环暴力操作,问题不大 阅读全文
posted @ 2019-11-13 10:09 十指决 阅读(3250) 评论(0) 推荐(1)
摘要:回溯算法的基本模板在很多场合有很重要的作用,一般的回溯问题都是在基本的模板上进行变种解决。 回溯算法在排列组合问题上主要分为不可重复回溯和可重复回溯,如: 不可重复回溯: 可重复回溯: 阅读全文
posted @ 2019-11-12 11:24 十指决 阅读(2868) 评论(0) 推荐(1)
摘要:对于矩阵的遍历的斜方向上的遍历,在动态规划中使用非常普遍,现将矩阵斜方向上的遍历方式总结如下: 主要思想:使用双重循环 内部的for循环1-n,代表对斜方向中心线的n个数字进行遍历,外部for循环表示步长,也就是在中心线的基础上进行当前的步长的 加和减,如图: 阅读全文
posted @ 2019-10-15 21:48 十指决 阅读(1860) 评论(0) 推荐(0)
摘要:子集树 子集树主要求解当前集合的所有子集,是算法中的基本思想指导。参考代码如下,以求解字符串的子集串为例子: 此代码可以结合二叉树的深度(见图)遍历进行理解,每个节点有 0(不选) 1(选择)两种方式,在实际过程中,可用合理的方式进行标记 以上代码中,我们使用中间缓存 m 保存当前将要删除的节点,在 阅读全文
posted @ 2019-10-11 22:35 十指决 阅读(1324) 评论(0) 推荐(1)
摘要:节点的度就是他有边(几个子节点) 二叉树结论:叶节点个数等于度为2的节点个数+1 (n0 = n2+1) 二叉树特征:节点数=度为2的节点个数 + 度为1的节点个数 + 度为0的节点个数(叶子节点) (n = n2+n1 + n0) 二叉树特征:节点数=总度数+1 例题: https://www.n 阅读全文
posted @ 2019-09-27 19:50 十指决 阅读(4536) 评论(0) 推荐(0)
摘要:解题思路: 此类型题目的解题主要注意生成的各个数字都是等概率的,不能够使用取模等操作,因为会造成概率不均匀 rand7()生成rand5(): rand7()的随机数概率分布是1/7,我们在用其生成rand5()的时候只需要获取1 2 3 4 5 五个即可,其余两个数 6 7 忽略 也就是: 结果取 阅读全文
posted @ 2019-09-27 19:43 十指决 阅读(804) 评论(0) 推荐(0)
摘要:1 ** 2 * 二叉树先序遍历非递归 3 * @param root 4 */ 5 public void preOrder_no_recursive(TreeNode root){ 6 if(root == null) return; 7 8 Stack<TreeNode> stack = new Stack<>(); 9 stack.add(root); 10 while(!stack.is 阅读全文
posted @ 2019-09-26 15:56 十指决 阅读(729) 评论(0) 推荐(0)
摘要:案例详情: 给定一个整数数组,求解其中最大连续字串的和? 代码展示: 阅读全文
posted @ 2019-09-08 13:47 十指决 阅读(150) 评论(0) 推荐(0)
摘要:题目描述: 给你一个整数数组,返回它的某个 非空 子数组(连续元素)在执行一次可选的删除操作后,所能得到的最大元素总和。 换句话说,你可以从原数组中选出一个子数组,并可以决定要不要从中删除一个元素(只能删一次哦),(删除后)子数组中至少应当有一个元素,然后该子数组(剩下)的元素总和是所有子数组之中最 阅读全文
posted @ 2019-09-08 13:43 十指决 阅读(243) 评论(0) 推荐(0)
摘要:对于后台程序的报表系统,我们常常会遇到一些问题。比如:对于数据的按照相应的粒度进行分组求和问题。 首先,我们来描述一个情景,当我们目前拥有区间段内的数据$Array[ [数据,时间] ,...],时间粒度$TimeList[time1 , time2 , time3...],我们要对数据进行分组求和 阅读全文
posted @ 2019-09-01 16:09 十指决 阅读(1036) 评论(0) 推荐(0)
摘要:题目描述: 请你帮忙给从 1 到 n 的数设计排列方案,使得所有的「质数」都应该被放在「质数索引」(索引从 1 开始)上;你需要返回可能的方案总数。 让我们一起来回顾一下「质数」:质数一定是大于 1 的,并且不能用两个小于它的正整数的乘积来表示。 由于答案可能会很大,所以请你返回答案 模 mod 1 阅读全文
posted @ 2019-09-01 16:07 十指决 阅读(357) 评论(0) 推荐(0)
摘要:题目描述: 给你一个字符串 s,请你对 s 的子串进行检测。 每次检测,待检子串都可以表示为 queries[i] = [left, right, k]。我们可以 重新排列 子串 s[left], ..., s[right],并从中选择 最多 k 项替换成任何小写英文字母。 如果在上述检测过程中,子 阅读全文
posted @ 2019-09-01 15:56 十指决 阅读(610) 评论(0) 推荐(0)