算法
文章平均质量分 59
Saucey_6
这个作者很懒,什么都没留下…
展开
-
计算n阶乘中尾部零的个数
今天开始算法练习,刚开始感觉挺简单的一个题,怎么就让自己乱了手脚。题目: 设计一个算法,计算n阶乘中尾部零的个数 结果: 11! = 39916800,因此应该返回 2见到题目的第一反应就是,简单通俗易懂。一般思维就是,首先算出N的阶乘,然后我们再从其尾部进行数0,就OK。果真,我也就这样写了,但是测试代码并未通过,提示是,算法太复杂。是啊,一个本身阶乘算法复杂度就不低,得原创 2018-01-25 23:39:54 · 797 阅读 · 0 评论 -
654. 最大二叉树
题目:题解:思路:使用递归,看到这个题的时候,我第一反应就是给出先序和中序遍历序列,构造二叉树,嗯啊,就是使用这个思路走的。虽然复杂度很高,但是还是很快跑出来了。代码:var constructMaximumBinaryTree = function (nums) { if (nums.length === 0) { return null } l...原创 2019-03-19 10:05:14 · 148 阅读 · 0 评论 -
101. 对称二叉树
题目:题解:代码:var isSymmetric = function (root) { return dfs(root, root) function dfs(p, q) { if (p == null && q == null) return true if (p == null || q == null) return...原创 2019-03-22 11:13:25 · 115 阅读 · 0 评论 -
100. 相同的树
题目:题解:递归(下次题目保证不用递归来写)代码:var isSameTree = function (p, q) { if (p === null && q === null) { return true } if ((p === null && q !== null) || (p !== null &&...原创 2019-03-18 10:20:17 · 114 阅读 · 0 评论 -
538.把二叉搜索树转换成累加树
题目:题解:思路:二叉搜索树的反向中序遍历。代码:var convertBST = function (root) { var start = 0;//初始设为0 var arr = []; var p = root; while (p || arr.length) { while (p) { arr.push(p...原创 2019-03-13 10:31:42 · 143 阅读 · 0 评论 -
102. 二叉树的层次遍历
题目:题解:思路:递归,追踪输的层次。代码:var levelOrder = function (root) { var res = [] let index = 0; travel(root, index) function travel(roots, index) { if (roots) { if (!res...原创 2019-03-21 11:54:39 · 228 阅读 · 0 评论 -
655. 输出二叉树
题目:题解:思路: 我们发现输出的数组的行数就是树的高度,列数就是树的高度的幂次方-1.求出树的高度利用二分法将节点值插入。代码:var printTree = function (root) { if (root === null) { return []; } let n = treeTop(root); let col ...原创 2019-03-21 11:51:16 · 295 阅读 · 0 评论 -
572. 另一个树的子树
题目:思路:递归代码:var isSubtree = function (s, t) { if (!s) return false if (isSub(s, t)) return true return isSubtree(s.left, t) || isSubtree(s.right, t) function isSub(treeS, treeT) {...原创 2019-03-15 18:18:05 · 88 阅读 · 0 评论 -
235-二叉搜索树的最近公共祖先
题目:解题思路:递归,二叉搜索树两个点二叉搜索树:二叉查找树,主要特点是,父节点比左孩子大,比右孩子小,即左大又小。/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } *...原创 2019-03-11 11:46:20 · 216 阅读 · 0 评论 -
617. 合并二叉树
题目:题解:思路:(1)递归 (2)対树进行先序遍历,置null的节点为0,两个数进行相加代码://递归var mergeTrees = function (t1, t2) { if (t1 === null) return t2; if (t2 === null) return t1; t1.val += t2.val; t1.left = mer...原创 2019-03-15 10:44:11 · 170 阅读 · 0 评论 -
563. 二叉树的坡度
题目:题解:思路:递归方法,主要确定递归结束条件代码:var findTilt = function (root) { let start = 0 mutation(root) return start function mutation(root) { if (root == null) { return 0 ...原创 2019-03-14 10:00:05 · 164 阅读 · 1 评论 -
lintcode-76 longest_increasing_subsing_quence
描述: 给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。 说明 最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。 样例 给出 [5,4,1,2,3],LIS 是 [1,2,3],返回 3 给出 [4,2,4,5,3,7],LIS 是 [2...原创 2018-06-09 19:43:44 · 134 阅读 · 0 评论 -
Fizz Buzz问题,转换字符串到整数算法整理
1. Fizz buzz问题:题目: 给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:如果这个数被3整除,打印fizz.如果这个数被5整除,打印buzz.如果这个数能同时被3和5整除,打印fizz buzz 这个算法很简单,直接贴代码:const fizzBuzz = function (n) { let result=[]; for(let...原创 2018-03-12 20:25:14 · 1060 阅读 · 0 评论 -
买卖股票的最佳时机
买卖股票的最佳时机无非就是低买高卖。买卖股票的最佳时机 I题目:假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。eg:给出一个数组样例 [3,2,3,1,2], 返回 1 解题思路:只允许一次买卖,即找出最高的售价,最低的买价。并且买在卖之前。做其卖价与买价的差,选出最大的那一个,...原创 2018-03-12 12:04:54 · 896 阅读 · 0 评论 -
排序算法
1. 桶排序桶排序被称之为最快最简单的排序算法。顾名思义,桶排序是将所要排序的东西分装到有限数量的桶子里,然后对每个桶再分别排序,最后将各个桶中的数据有序的合并起来即可。步骤 1.假设待排序的一组数统一的分布在一个范围中,并将这一范围划分成几个自范围,也就是桶。 2.将待排序的一组数,分挡归入这些子桶中,并将桶中的数据进行排序。 3.将各个桶中的数据有序的合并起来。...原创 2018-03-11 14:34:50 · 206 阅读 · 0 评论 -
第一个独特字符位置
题目:给出一个字符串。找到字符串中第一个不重复的字符然后返回它的下标。如果不存在这样的字符,返回 -1。 eg: 给出字符串 s = “lintcode”,返回 0。 给出字符串 s = “lovelintcode”,返回 2。解:(1)我的算法尝试了多次还是失败了. 我试图用str.indexOf(value,index)多次迭代来完成此题目,最后发现不仅算法复杂度高原创 2018-01-29 19:38:20 · 314 阅读 · 0 评论 -
统计数字——算法
题目计算数字k在0到n中的出现的次数,k可能是0~9的一个值。eg:例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12)思路不知道大家对这个题的第一反应是什么,我对此的第一反应是(1)分解个位,十位,百位等各个位.通过不断的取模运算,将其拆分。然后累原创 2018-01-29 18:05:54 · 637 阅读 · 0 评论 -
199. 二叉树的右视图
题目:题解:思路:递归,树的深度遍历代码:var rightSideView = function (root) { let res = []; let arr = []; dfs(root, 1) return res; function dfs(r, h) { //主要在这,递归结束条件 if (r ===...原创 2019-03-28 12:24:29 · 140 阅读 · 0 评论