主元素 III-LintCode

描述: 给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的1/k。  注意事项 数组中只有唯一的主元素 样例: 给出数组 [3,1,2,3,2,3,3,4,4,4] ,和 k = 3,返回 3 思路: 用哈希的方法建立...

2018-02-07 17:04:48

阅读数 73

评论数 0

翻转链表 II-LintCode

描述: 翻转链表中第m个节点到第n个节点的部分  注意事项 m,n满足1 ≤ m ≤ n ≤ 链表长度 样例: 给出链表1->2->3->4->5->null, m = 2 和n = 4,返回1->4->3->...

2018-02-07 16:50:49

阅读数 75

评论数 0

算法分析与设计课程总结

算法分析与设计课程总结 经过8周的学习,我对算法有了更深入的理解。代码水平也有了显著的提高。 我们学习的算法有:递归与分治策略,贪心算法,回溯算法,分支限界算法和动态规划算法。一、递归与分治策略 (一)递归 程序调用自身的编程技巧称为递归。一个过程或函数在其定义或说明中有直接或间接调用自身...

2017-11-02 23:04:14

阅读数 2323

评论数 0

不同的路径 II-LintCode

描述: “不同的路径” 的跟进问题: 现在考虑网格中有障碍物,那样将会有多少条不同的路径? 网格中的障碍和空位置分别用 1 和 0 来表示。 注意事项:m 和 n 均不超过100样例: 如下所示在3x3的网格中有一个障碍物: [ [0,0,0], [0,1,0], [...

2017-10-29 23:02:18

阅读数 143

评论数 0

不同路径-LintCode

描述: 有一个机器人的位于一个 m × n 个网格左上角。 机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。 问有多少条不同的路径? 注意事项:n和m均不超过100样例: 给出 m = 3 和 n = 3, 返回 6. 给出 m = 4 和 n = 5, 返回 35...

2017-10-29 22:55:41

阅读数 97

评论数 0

数字三角形-LintCode

描述: 给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。 注意事项:如果你只用额外空间复杂度O(n)的条件下完成可以获得加分,其中n是数字三角形的总行数。样例:比如,给出下列数字三角形:[ [2], [3,4], [6,5,7], [4,1,8...

2017-10-29 22:44:50

阅读数 108

评论数 0

栅栏染色-LintCode

描述: 我们有一个栅栏,它有n个柱子,现在要给柱子染色,有k种颜色可以染。 必须保证不存在超过2个相邻的柱子颜色相同,求有多少种染色方案。 注意事项:n和k都是非负整数样例: n = 3, k = 2, return 6 post1, post2, post3 way1...

2017-10-29 22:11:03

阅读数 105

评论数 0

最小路径和-LintCode

描述: 给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。 注意事项:你在同一时间只能向下或者向右移动一步。思路: 建立一个二维数组 ,f[i][j]用来表示以A[i][j]为终点时的最小路径,对于每一个A[i][j]来说,能走到它的方法有两种,即从A[i-...

2017-10-29 21:39:28

阅读数 112

评论数 0

最长上升连续子序列-LintCode

描述: 给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。(最长上升连续子序列可以定义为从右到左或从左到右的序列。) 注意事项:time样例: 给定 [5, 4, 2, 1, 3], 其最长上升连续子序列(LICS)为 [5, 4, 2...

2017-10-29 21:26:17

阅读数 89

评论数 0

爬楼梯-LintCode

描述: 假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?样例: 比如n=3,1+1+1=1+2=2+1=3,共有3种不同的方法 返回 3思路: 这个题显然用动态规划比较好处理,设爬到第n层楼梯,它的爬法与它的前两层爬法有关,即可以由n...

2017-10-29 20:44:41

阅读数 110

评论数 0

验证二叉查找树—LintCode

描述: 给定一个二叉树,判断它是否是合法的二叉查找树(BST)一棵BST定义为:节点的左子树中的值要严格小于该节点的值。 节点的右子树中的值要严格大于该节点的值。 左右子树也必须是二叉查找树。 一个节点的树也是二叉查找树。ac代码:/** * Definition of TreeNode...

2017-10-12 17:22:15

阅读数 82

评论数 0

快速幂—LintCode

描述: 计算a^n % b,其中a,b和n都是32位的整数。样例: 例如 2^31 % 3 = 2例如 100^1000 % 1000 = 0思路:二分求幂。ac代码:class Solution { public: /* * @param a, b, n: 32bit in...

2017-10-12 17:21:04

阅读数 81

评论数 0

最大间距—LintCode

描述: 给定一个未经排序的数组,请找出其排序表中连续两个要素的最大间距。如果数组中的要素少于 2 个,请返回 0.样例: 给定数组 [1, 9, 2, 5],其排序表为 [1, 2, 5, 9],其最大的间距是在 5 和 9 之间,= 4.思路:利用sort对数组进行排序。 找出最大的间距即...

2017-10-12 17:14:24

阅读数 109

评论数 0

寻找缺失的数—LintCode

描述: 给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数。样例: N = 4 且序列为 [0, 1, 3] 时,缺失的数为2。思路:首先对数组进行排序。 再判断nums[i]是否等于i。 不等于即缺少的数为i。ac代码:class Solutio...

2017-10-12 17:11:39

阅读数 105

评论数 0

硬币排成线—LintCode

描述: 有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。样例: n = 1, 返回 true.n = 2, 返回 true.n = 3, 返回 false.n = 4, 返回 true.n = 5, 返回 true.思路:...

2017-10-12 17:09:35

阅读数 167

评论数 0

买卖股票的最佳时机 —LintCode

描述: 假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。样例: 给出一个数组样例 [3,2,3,1,2], 返回 1 思路:当我们遍历到第i天的时候,我们需要知道前i-1天的最小值。那么就可得出在第i...

2017-10-12 17:08:06

阅读数 102

评论数 0

落单的数—LintCode

描述: 给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。样例: 给出 [1,2,2,1,3,4,3],返回 4思路:从头开始遍历数组,遍历到没有被标记的数时,就遍历后面的数组找到与这个数相同的标记上。最后没有被标记的数就是答案。也可以将所有的数按位异或,最...

2017-10-12 17:00:42

阅读数 178

评论数 0

最小子数组—LintCode

描述: 给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。样例: 给出数组[1, -1, -2, 1],返回 -3思路: 和最大数组思路一致。ac代码:class Solution { public: /* * @param nums: a list of int...

2017-10-12 16:54:39

阅读数 72

评论数 0

最大子数组—Lintcode

描述: 给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。样例: 给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6思路:从头开始遍历,每次添加新元素进行两步操作: 1.比较maxx与sum的大小,使maxx始终为最大的值。...

2017-10-12 16:52:31

阅读数 82

评论数 0

主元素-LintCode

描述: 给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。样例: 给出数组[1,1,1,1,2,2,2],返回 1思路:创建一个数组a[i]=j; 代表i数字出现了j次。遍历一遍a数组,找出a数组中大于nums.size()/2的值即为答案。ac代码:clas...

2017-10-12 16:36:03

阅读数 199

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭