自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 LintCode_871_Minimum Factorization

问题描述Given a positive integer a, find the smallest positive integer b whose multiplication of each digit equals to a.If there is no answer or the answer is not fit in 32-bit signed integer, then re...

2018-03-17 22:06:01 403

原创 LintCode_897_海岛城市

问题描述Given a matrix of size n x m, the elements in the matrix are 0、1、2. 0 for the sea, 1 for the island, and 2 for the city on the island(You can assume that 2 is built on 1, ie 2 also represents th...

2018-03-17 17:00:48 249

原创 LintCode_044_最小子数组

问题描述给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。样例给出数组[1, -1, -2, 1],返回 -3求解class Solution{ public: int maxSubArray(vector<int> nums) { int minSum = 0; int curSum = 0; for (auto it

2017-12-17 20:29:40 171

原创 LintCode_100_删除排序数组中的重复数字

问题描述给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次, 并且返回新的数组的长度。不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。样例给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]求解class Solution {public: int removeDuplicates(vector<int> &nums) {

2017-12-10 20:26:10 143

原创 LintCode_008_旋转字符串

问题描述给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)样例对于字符串 “abcdefg”.offset=0 => “abcdefg” offset=1 => “gabcdef” offset=2 => “fgabcde” offset=3 => “efgabcd”求解翻转前一半,翻转后一半,整体翻转class Solution{ public: void rot

2017-12-10 19:25:23 180

原创 LintCode_068_二叉树的后序遍历

问题描述给出一棵二叉树,返回其节点值的后序遍历。样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [3,2,1].挑战你能使用非递归实现么?求解class Solution2{ public: vector<int> postorderTraversal(TreeNode *root) { vector<i

2017-12-08 19:19:08 135

原创 LintCode_067_二叉树的中序遍历

问题描述给出一棵二叉树,返回其节点值的中序遍历。样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [1,3,2].挑战你能使用非递归实现么?求解class Solution{ public: vector<int> inorderTraversal(TreeNode *root) { vector<int>

2017-12-08 19:07:20 155

原创 LintCode_066_二叉树的前序遍历

问题描述给出一棵二叉树,返回其节点值的前序遍历。样例 给出一棵二叉树 {1,#,2,3},1 \ 2 / 3返回 [1,2,3].挑战你能使用非递归实现么?求解class Solution2 {public: vector<int> preorderTraversal(TreeNode *root) { vector<int> re

2017-12-08 18:58:16 189

原创 LintCode_517_丑数

问题描述写一个程序来检测一个整数是不是丑数。丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7。样例给出 num = 8,返回 true。 给出 num = 14,返回 false。求解依次把因子 2, 3, 5除尽即可class Solution{ public: bool isUgly(int num)

2017-12-07 22:20:50 151

原创 LintCode_041_最大子数组

问题描述给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。注意事项子数组最少包含一个数样例给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6求解class Solution{ public: int maxSubArray(vector<int> nums) { int maxSum = 0;

2017-12-07 22:03:55 140

原创 LintCode_539_移动零

问题描述给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序注意事项1.必须在原数组上操作 2.最小化操作数样例给出 nums = [0, 1, 0, 3, 12], 调用函数之后, nums = [1, 3, 12, 0, 0].求解使用pos记录第一个0的位置,之后找到非0的值就和pos上的值进行交换class Solution {public: vo

2017-12-07 21:16:08 169

原创 LintCode_060_搜索插入位置

问题描述给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。你可以假设在数组中无重复元素。样例[1,3,5,6],5 → 2[1,3,5,6],2 → 1[1,3,5,6], 7 → 4[1,3,5,6],0 → 0求解经典的“二分查找”在未找到匹配值时,一般返回 -1,这里在经典算法上稍加改造便能符合题目需求class Solution{

2017-12-06 22:34:51 165

原创 LintCode_096_链表划分

问题描述给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。 你应该保留两部分内链表节点原有的相对顺序。样例给定链表 1->4->3->2->5->2->null,并且 x=3返回 1->2->2->4->3->5->null求解搞两个指针,smaller记录小于x的结点, larger记录不小于x的结点, 最后将拆分出来的两个链表拼接,注意larger的next应当赋

2017-12-06 21:08:19 134

原创 vtk视图设置

问题描述vtk中显示模型的各个视图,例如前视图、后视图、左视图、右视图等。解析我们通过调整相机位置、焦点位置、朝上方向来实现各个视图。相机位置:即相机所在的位置,用方法vtkCamera::SetPosition()设置;相机焦点:从相机看向的点,用方法vtkCamera::SetFocusPoint()设置;朝上方向:相机朝上的方向。就好比我们直立看东西,方向为头朝上,看到的东西也是直立的,

2017-12-04 17:46:07 4725

原创 《机器学习实战》笔记_k-近邻算法(一)

准备:使用Python导入数据新建一个文件kNN.py,在文件中增加下面的代码:from numpy import *import operatordef createDataSet(): group = array([[1.0, 1.1], [1.0, 1.0], [0.0, 0.0], [0.0, 0.1]]) labels = ['A', 'A', 'B', 'B']

2017-11-12 15:47:16 148

原创 LintCode_035_翻转链表

问题描述翻转一个链表样例给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null求解class Solution {public: /** * @param head: The first node of linked list. * @return: The new head of reversed linked list. */

2017-11-10 18:35:53 141

原创 LintCode_524_左填充

问题描述实现一个leftpad库,如果不知道什么是leftpad可以看样例样例leftpad(“foo”, 5) ” foo” leftpad(“foobar”, 6) “foobar” leftpad(“1”, 2, “0”) “01” 求解class StringUtils {public: /* * @param

2017-11-02 20:23:20 517

原创 LintCode_488_快乐数

问题描述写一个算法来判断一个数是不是”快乐数”。一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。样例19 就是一个快乐数。1^2 + 9^2 = 82 8^2 + 2^2 = 68 6^2 + 8^2 = 100 1^2 + 0^2 + 0^2 = 1

2017-11-02 20:11:52 176

原创 LintCode_452_删除链表中的元素

问题描述删除链表中等于给定值val的所有节点。样例给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。求解class Solution {public: /** * @param head a ListNode * @param val an integer * @return a Li

2017-10-31 21:37:11 575

原创 LintCode_366_斐波纳契数列

问题描述查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是 0 和 1 。 第 i 个数是第 i-1 个数和第i-2 个数的和。 斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 …样例给定 1,返回 0给定 2,返回 1给定 10,返回 34求解// Time: O(n)// Space: O(1)class Solution{

2017-10-31 21:10:19 580

原创 LintCode_212_空格替换

问题描述设计一种方法,将一个字符串中的所有空格替换成 %20 。 你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。你的程序还需要返回被替换后的字符串的长度。样例对于字符串”Mr John Smith”, 长度为 13替换空格之后,参数中的字符串需要变为”Mr%20John%20Smith”, 并且把新长度 17 作为结果返回。求解class Solution {p

2017-10-31 20:34:08 167

原创 LintCode_082_落单的数

问题描述给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。样例给出 [1,2,2,1,3,4,3],返回 4求解本题的求解借助异或运算异或运算的特征:任何数和 0 进行异或运算得到其自身,任何数和其自身进行异或运算得到 0异或运算符合交换率和结合率(可以类比一下乘法,一串数连乘,不管先算谁乘谁,都不影响最终结果)以样例中的输入为例,初始值为 0,依次和[1,

2017-10-30 21:24:24 360

原创 LintCode_009_Fizz Buzz问题

问题描述给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:如果这个数被3整除,打印fizz. 如果这个数被5整除,打印buzz. 如果这个数能同时被3和5整除,打印fizz buzz.样例比如 n = 15, 返回一个字符串数组:[ “1”, “2”, “fizz”, “4”, “buzz”, “fizz”, “7”, “8”, “fizz”, “buzz”,

2017-10-30 19:21:59 272

原创 LintCode_003_统计数字

问题描述计算数字k在0到n中的出现的次数,k可能是0~9的一个值样例例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], 我们发现1出现了5次 (1, 10, 11, 12)求解先给出最朴素的解法:遍历 0 到 n,如果是一位数,直接和 k 比较,如果是两位及两位以上的数, 从低到高逐位和 k 比较。这里没有将一位数的算法和多位数的算法

2017-10-29 15:20:00 189

原创 LintCode_002_尾部的零

问题描述设计一个算法,计算出n阶乘中尾部零的个数样例11! = 39916800,因此应该返回 2分析和求解n阶乘中尾部的 0 是通过含因子 2 的数和含因子 5 的数相乘产生的。 在 1…n 中,因子 2 的数量一定比因子 5 的数量多。 此时问题转化为 1…n 中一共多少个因子 5 。在 1…n 中,含 1 个因子 5 的数有5,10, 15,20,30…; 含 2 个因子 5 的数有25

2017-10-29 14:36:03 241

原创 LintCode_001_A+B问题

问题描述给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。说明a和b都是 32位 整数么?是的我可以使用位运算符么?当然可以样例如果 a=1 并且 b=2,返回3求解使用位运算符进行加法运算,异或运算得到和(不含进位),与运算再左移得到进位(carry),和与进位“相加”得到结果。“相加”是对前面过程的又一次调用,可以通过递归或循...

2017-10-29 13:23:00 248

原创 LintCode_097_二叉树的最大深度

问题描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。样例给出一棵如下的二叉树: 这个二叉树的最大深度为3.求解注意题目中“深度”的定义与标准定义不同,标准定义中“深度”指根结到某结点路径的长度,样例中最大深度应为2. 以下是按题目要求给出的代码:class Solution {public: /** * @param root: The root

2017-08-25 21:54:42 186

原创 LintCode_056_两数之和

问题描述给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。样例给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2].求解class Solution {public: /* *

2017-08-25 21:16:56 137

原创 LintCode_491_回文数

问题描述判断一个正整数是不是回文数。回文数的定义是,将这个数反转之后,得到的数仍然是同一个数。样例11, 121, 1, 12321 这些是回文数。23, 32, 1232 这些不是回文数。求解需要注意32位整数反转之后的整数可能溢出,例如,32位整数最大的是2147483647,反转后的7463847412显然比原数大。class Solution {public: /* *

2017-08-25 21:06:45 160

原创 LintCode_149_买卖股票的最佳时机

问题描述假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。样例给出一个数组样例 [3,2,3,1,2], 返回 1 求解此问题是“最大子数组”问题的一个应用。class Solution {public: /* * @param prices: Given an integer array

2017-08-23 20:37:01 254

原创 LintCode_167_链表求和

问题描述你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。样例给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null求解class Solution {public: /** * @param l1: the firs

2017-08-23 17:55:06 142

原创 LintCode_424_逆波兰表达式求值

问题描述求逆波兰表达式的值。在逆波兰表达法中,其有效的运算符号包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰计数表达。样例["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6求解class Solution {public:

2017-08-22 19:07:37 216

原创 LintCode_053_翻转字符串

问题描述给定一个字符串,逐个翻转字符串中的每个单词。说明单词的构成:无空格字母构成一个单词输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个求解class Solution {public: /** * @param s : A string * @return : A string

2017-08-22 17:51:37 201

原创 LintCode_006_合并排序数组

描述合并两个排序的整数数组A和B变成一个新的数组。样例给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]解决方案归并排序中使用到了排序数组的合并,所以该问题的解决方案已经很成熟,本文给出C++的实现:class Solution {public: /** * @param A and B: sorted integer array A a

2017-07-31 20:34:30 204

原创 LintCode_112_删除排序链表中的重复元素

问题描述给定一个排序链表,删除所有重复的元素每个元素只留下一个。样例给出 1->1->2->null,返回 1->2->null给出 1->1->2->3->3->null,返回 1->2->3->null

2017-07-19 22:16:04 171

原创 LintCode_632_二叉树的最大结点

问题描述在二叉树中寻找值最大的节点并返回。样例给出如下一棵二叉树: 返回值为 3 的节点。求解网上找到的方法中很多需要再搞一个成员变量,且先赋值为int类型的最小值,不够简洁优雅,也不方便改造成泛型算法。本文提供一种使用函数对象和Lambda表达式的解法。class Solution {public: /** * @param root the root of binary

2017-07-17 20:05:14 629

原创 18位身份证号码校验

18位身份证号码校验

2017-07-13 21:57:16 805

空空如也

空空如也

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

TA关注的人

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