自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 LintCode : 加一

LintCode : 加一给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。该数字按照大小进行排列,最大的数在列表的最前面。先把数组组装成字符串,再把字符串转成数组,然后加1,再转成字符串,最后转成数组,有点麻烦。public class Solution { /** * @param digits a number represented as an ar

2015-10-26 21:52:02 930

原创 LintCode : 有效回文串

LintCode : 有效回文串给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写。双指针public class Solution { /** * @param s A string * @return Whether the string is a valid palindrome */ public boolean isPali

2015-10-26 17:52:51 407

原创 LintCode : Maximal Square

# LintCode : Maximal SquareGiven a 2D binary matrix filled with 0’s and 1’s, find the largest square containing all 1’s and return its area.动态规划:动态方程 dp[i][j] = min(dp[i-1][j-1], min(dp[i-1][j], dp[i][

2015-10-26 16:23:54 279

原创 LintCode : 排颜色 II

LintCode : 排颜色 II给定一个有n个对象(包括k种不同的颜色,并按照1到k进行编号)的数组,将对象进行分类使相同颜色的对象相邻,并按照1,2,…k的顺序进行排序。一个相当直接的解决方案是使用计数排序扫描2遍的算法。这样你会花费O(k)的额外空间。你否能在不使用额外空间的情况下完成?暂时还没想到,只能用map解决,慢慢想吧。。。class Solution{public: /*

2015-10-12 17:55:17 510

原创 LintCode : 最长公共子串

LintCode : 最长公共子串给出两个字符串,找到最长公共子串,并返回其长度。与LintCode上的另一题类似, 不同的是“串”是连续的,而“序列”不要求连续。状态方程:f[i][j] = f[i-1][j-1] + 1; (A[i] = B[i])时 f[i][j] = 0; (A[i] != B[i])时class Solution {public: /**

2015-10-12 16:30:00 352

原创 LintCode : 最长公共子序列

LintCode : 最长公共子序列给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。动态规划。大神July讲的很详细,请大家移步这里。class Solution {public: /** * @param A, B: Two strings. * @return: The length of longest common subsequence of

2015-10-12 16:01:21 606

原创 LintCode : 颠倒整数

LintCode : 颠倒整数将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。class Solution: # @param {int} n the integer to be reversed # @return {int} the reversed integer def reverseInteger(self, n):

2015-10-12 14:18:16 367

原创 LintCode : 背包问题 II

LintCode : 背包问题 II给出n个物品的体积A[i]和其价值V[i],将他们装入一个大小为m的背包,最多能装入的总价值有多大?您在真实的面试中是否遇到过这个题?典型的01背包问题,动态规划解决。状态转移方程:ans[i][j] = max ( ans[i-1][j-A[i-1]] + V[i-1], ans[i-1][j-1] ) 当(j >= V[i])时。ans[i][j] =

2015-10-11 22:40:18 618

原创 LintCode : 搜索区间

LintCode : 搜索区间给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。如果目标值不在数组中,则返回[-1, -1]方案一:指定一高一低两个指针,低指针向后遍历,高指针向前遍历,最终低指针指向起始位置,高指针指向结束位置。时间复杂度O(n)。class Solution { /** *@param A : an integer sort

2015-10-11 17:19:48 311

原创 LintCode : 搜索插入位置

LintCode : 搜索插入位置给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。你可以假设在数组中无重复元素。二分法。class Solution { /** * param A : an integer sorted array * param target : an integer to be inse

2015-10-11 16:06:02 359

原创 LintCode : 搜索旋转排序数组 II

LintCode : 搜索旋转排序数组 II跟进“搜索旋转排序数组”,假如有重复元素又将如何?是否会影响运行时间复杂度?如何影响?为何会影响?写出一个函数判断给定的目标值是否出现在数组中。方案一遍历所有元素,时间复杂度O(n).class Solution { /** * param A : an integer ratated sorted array and duplica

2015-10-11 15:37:32 341

原创 LintCode : 搜索旋转排序数组

LintCode : 搜索旋转排序数组假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。你可以假设数组中不存在重复的元素。方案一:遍历所有元素没有什么技术含量,就是遍历数组的所有元素, 时间复杂度O(n)。class Solution { /**

2015-10-11 15:34:41 344

原创 LintCode : 第一个错误的代码版本

LintCode : 第一个错误的代码版本代码库的版本号是从 1 到 n 的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。你可以通过 isBadVersion 的接口来判断版本号 version 是否在单元测试中出错,具体接口详情和调用方法请见代码的注释部分。二分查找。/** * class VersionControl {

2015-10-11 14:22:55 391

原创 LintCode:二叉树的最小深度

Lintcode : 二叉树的最小深度给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。与二叉树的最大深度不同,不能单纯地使用递归,因为二叉树的深度必须是根结点到叶子结点的距离,不能单纯的比较左右子树的递归结果返回较小值,因为对于有单个孩子为空的节点,为空的孩子会返回0,但这个节点并非叶子节点,故返回的结果是错误的。因此,当发现当前处理的节点有单个孩子是空时,返回一个极大

2015-10-11 11:18:42 3858

原创 LintCode:二叉树的最大深度

LintCode:二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。显然,这是一个典型的递归。/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val)

2015-10-10 23:10:05 1012

原创 转载:读懂C/C++递归

今天看了贺利坚老师讲解的递归,受益颇多,在些记录一下,原文链接这里,我把贺利坚老师的PDF文件截图放在博客里,以便随时查看。  递归在计算学科中是一种非常重要的方法,计算理论中到处都有用递归进行表述的问题及求解方法。  在程序设计中,数据描述和算法表达也常用递归,通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大

2015-10-10 23:03:36 384

原创 LintCode:最小路径和

最小路径和 给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。 LintCode:最小路径和思路一:万能的枚举m行,n列的矩阵,从左上角走到右下角,需要向下移动(m-1)步,向右移动(n-1)步,共(m+n-2)步,则路径总条数为C(m+n-2, m-1)步。m,n较小时可行,较大时不可行。思路二: 动态规划dp[i][j] 表示从左上到达grid[i

2015-10-10 13:36:57 673

原创 LintCode: 最大子数组

容易 最大子数组 查看运行结果 37% 通过 给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。您在真实的面试中是否遇到过这个题? Yes 样例 给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6注意 子数组最少包含一个数挑战 要求时间复杂度为O(n)/*动态规划:状态方程:ans[0] = nums[0]ans

2015-10-09 13:51:08 639

原创 LintCode:二叉树的前序遍历、中序遍历、后序遍历

二叉树的前序遍历39% 通过 给出一棵二叉树,返回其节点值的前序遍历。您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树 {1,#,2,3},1 \ 2 / 3 返回 [1,2,3].挑战 你能使用非递归实现么?/*暂时只会用递归*//** * Definition of TreeNode: * class TreeNode {

2015-10-08 23:12:59 364

原创 Lintcode: 颜色分类

Lintcode: 颜色分类给定一个包含红,白,蓝且长度为n的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。我们可以使用整数0,1和2分别代表红,白,蓝。您在真实的面试中是否遇到过这个题? Yes 样例 注意 不能使用代码库中的排序函数来解决这个问题说明 一个相当直接的解决方案是使用计数排序扫描2遍的算法。首先,迭代数组计算0,1,2出现的次数,然后依次用0,

2015-10-08 20:47:14 421

易语言编程助手V3.1

易语言编程助手V3.1版,18年3月20号发布,非常好用,学习易语言必备。

2018-03-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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