自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Lintcode 将数组重新排序以构造最小值

给定一个整数数组,请将其重新排序,以构造最小值。 注意事项The result may be very large, so you need to return a string instead of an integer.您在真实的面试中是否遇到过这个题? Yes样例给定 [3, 32, 321],通过将数组重新排序

2017-04-19 20:20:17 656

原创 Lintcode x的n次幂

实现 pow(x,n) 注意事项不用担心精度,当答案和标准输出差绝对值小于1e-3时都算正确您在真实的面试中是否遇到过这个题? Yes样例Pow(2.1, 3) = 9.261Pow(0, 1) = 0Pow(1, 0) = 1挑战 O(logn) time标签 二

2017-04-19 16:32:25 1659 2

原创 Lintcode 主元素 III

给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的1/k。 注意事项数组中只有唯一的主元素您在真实的面试中是否遇到过这个题? Yes样例给出数组 [3,1,2,3,2,3,3,4,4,4] ,和 k = 3,返回 3挑战 要求时间复杂度为O(n),空间复杂度

2017-04-19 16:07:07 835

原创 Lintcode 落单的数 II

给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,1,2,3,3,3,2,2,4,1] ,返回 4挑战 一次遍历,常数级的额外空间复杂度分析:三个数相同,则我们将每一个数的二进制中对应位的1的个数都加起来放在数组num

2017-04-19 15:44:35 596

转载 位操作基础篇之位操作全面总结

Title:       位操作基础篇之位操作全面总结Author:     MoreWindowsE-mail:      morewindows@126.comKeyWord:   C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位操作趣味应用 位操作笔试面试位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳

2017-04-18 19:18:11 10456

原创 Lintcode 验证二叉查找树

给定一个二叉树,判断它是否是合法的二叉查找树(BST)一棵BST定义为:节点的左子树中的值要严格小于该节点的值。节点的右子树中的值要严格大于该节点的值。左右子树也必须是二叉查找树。一个节点的树也是二叉查找树。您在真实的面试中是否遇到过这个题? Yes样例一个例子: 2 / \1 4 / \ 3 5上述

2017-04-17 19:22:46 636

原创 Lintcode 摆动排序

给你一个没有排序的数组,请将原数组就地重新排列满足如下性质nums[0] = nums[2] <= nums[3].... 注意事项请就地排序数组,也就是不需要额外数组您在真实的面试中是否遇到过这个题? Yes样例给出数组为 nums = [3, 5, 2, 1, 6, 4] 一种输出方案为 [1, 6, 2

2017-04-17 17:22:44 967

原创 Lintcode 二进制中有多少个1

计算在一个 32 位的整数的二进制表式中有多少个 1.您在真实的面试中是否遇到过这个题? Yes样例给定 32 (100000),返回 1给定 5 (101),返回 2给定 1023 (111111111),返回 9挑战 If the integer is n bits with m 1 bits. Can you

2017-04-17 15:38:28 914

原创 Lintcode 在O(1)时间复杂度删除链表节点

给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。您在真实的面试中是否遇到过这个题? Yes样例给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为 1->2->4。标签 Cracking The Coding Interview 链表分析:

2017-04-17 15:26:20 440

原创 Lintcode 三数之和

给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。 注意事项在三元组(a, b, c),要求a 结果不能包含重复的三元组。您在真实的面试中是否遇到过这个题? Yes样例如S = {-1 0 1 2 -1 -4}, 你需要返回的三元组集合的是:

2017-04-17 14:45:18 551

原创 Lintcode 装最多水的容器

给定 n 个非负整数 a1, a2, ..., an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。 注意事项容器不可倾斜。您在真实的面试中是否遇到过这个题? Yes样例

2017-04-16 23:35:15 1099

原创 Lintcode 螺旋矩阵 II

给你一个数n生成一个包含1-n^2的螺旋形矩阵 注意事项您在真实的面试中是否遇到过这个题? Yes样例n = 3矩阵为[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]标签 数组class Solution {public: /**

2017-04-16 21:32:57 440

转载 STL之五:set/multiset用法详解

集合使用set或multiset之前,必须加入头文件Set、multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素。sets和multiset内部以平衡二叉树实现1.   常用函数1)        构造函数和析构函数set c:创建空集合,不包含任何元素set c(op):以op为排序准则,产生一个空

2017-04-16 17:24:58 352

转载 字符串的全排列和组合算法(递归非递归)

全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *

2017-04-16 15:30:36 931

转载 【图像处理】透视变换 Perspective Transformation

透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。通用的变换公式为:u,v是原始图片左边,对应得到变换后的图片坐标x,y,其中。变换矩阵可以拆成4部分,表示线性变换,比如scaling,shearing和ratotion。用于平移,产生透视变换。所以

2017-04-13 22:25:40 1095

原创 Lintcode 平面列表

给定一个列表,该列表中的每个要素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。 注意事项如果给定的列表中的要素本身也是一个列表,那么它也可以包含列表。您在真实的面试中是否遇到过这个题? Yes样例给定 [1,2,[1,2]],返回 [1,2,1,2]。给定 [4,[3,[2,[1]]]],返回 [4,

2017-04-12 23:10:02 899

原创 Lintcode 寻找峰值

你给出一个整数数组(size为n),其具有以下特点:相邻位置的数字是不同的A[0] A[n - 1]假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。 注意事项数组可能包含多个峰值,只需找到其中的任何一个即可您在真实的面试中是否遇到过这个题? Yes

2017-04-10 20:08:48 482

转载 二叉树的前中后序遍历,递归和非递归方式

解决二叉树的很多问题的方案都是基于对二叉树的遍历。遍历二叉树的前序,中序,后序三大方法算是计算机科班学生必写代码了。其递归遍历是人人都能信手拈来,可是在手生时写出非递归遍历恐非易事。正因为并非易事,所以网上出现无数的介绍二叉树非递归遍历方法的文章。可是大家需要的真是那些非递归遍历代码和讲述吗?代码早在学数据结构时就看懂了,理解了,可为什么我们一而再再而三地忘记非递归遍历方法,却始终记住了递归遍历方

2017-04-10 19:34:35 3787 1

原创 移位运算为什么比乘法除法快

从效率上看,使用移位指令有更高的效率,因为移位指令占2个机器周期,而乘除法指令占4个机器周期。从硬件上看,移位对硬件更容易实现,所以会用移位,移一位就乘2,这种乘法当然考虑移位了。两个64位的数按位与 和 一个64位的数右移32位  哪个操作快些?专家解读:移位快,只有一次寻址,逻辑运算和写操作,按位与需要两次寻址,一次逻辑运算和一次写。

2017-04-10 10:04:49 16393 9

转载 创建包围轮廓的矩形和圆形边界框--boundingRect()、minEnclosingCircle()和approxPolyDP()

boundingRect()作用:计算点集的右上边框。形式:boundingRect(InputArray points);参数:points:输入二维点集,并用std::vector or Mat存储;minEnclosingCircle()作用:找到包围二维点集面积最小的圆。形式:void minEnclosingCircle(InputArray poin

2017-04-09 22:14:48 1106

转载 [OpenCV]绘制填充轮廓drawContours

我们知道如果要求取轮廓可以使用findContours函数,该函数会返回为vector >的轮廓向量。而在以前想对轮廓进行绘制我通常会使用遍历这个vector然后依次将点绘制到img上其实OpenCV里面已经有drawContours这个函数可以实现这个效果具体来说,当我想将这个轮廓进行填充的时候我会有下面2步骤:a)依次遍历轮廓点,将点绘制到img上

2017-04-09 22:13:55 8973

转载 contourArea函数

double cvContourArea( const CvArr* contour, CvSlice slice=CV_WHOLE_SEQ );contour:轮廓(顶点的序列或数组)。slice:感兴趣区轮廓部分的起点和终点,默认计算整个轮廓的面积。函数cvContourArea计算整个或部分轮廓的面积。在计算部分轮廓的情况时,由轮廓弧线和连接两端点的弦围成的区域总面积

2017-04-09 19:29:42 11975

转载 Opencv笔记——findContours函数

好长时间没写博客了,主要是前一段时间读的论文不多,也没什么新的想法,学到的东西别人的博客已经写的挺好的了,自己就没必要再写了。寒假做数字图像处理的作业的时候用OpenCV的findContours函数来寻找轮廓,对这个函数有点理解,我觉得还比较有价值。    先来看看findContours的声明[cpp] view plain copy

2017-04-09 19:17:42 647

转载 OpenCV学习笔记-自适应阈值化

自适应阈值化的函数为:AdaptiveThreshold自适应阈值方法void cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value, int adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C,

2017-04-09 14:54:37 360

原创 Lintcode 二叉树的中序遍历

给出一棵二叉树,返回其中序遍历您在真实的面试中是否遇到过这个题? Yes样例给出二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [1,3,2].挑战 你能使用非递归算法来实现么?标签 递归 二叉树 二叉树遍历方法一    递归/**

2017-04-08 19:19:36 1203

原创 Lintcode 两个排序数组的中位数

两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,要求时间复杂度应为O(log (m+n))。您在真实的面试中是否遇到过这个题? Yes样例给出数组A = [1,2,3,4,5,6] B = [2,3,4,5],中位数3.5给出数组A = [1,2,3] B = [4,5],中位数 3挑战 时间复杂

2017-04-07 20:09:14 1468

原创 Lintcode 合并排序数组 II

合并两个排序的整数数组A和B变成一个新的数组。 注意事项你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。您在真实的面试中是否遇到过这个题? Yes样例给出 A = [1, 2, 3, empty, empty], B = [4, 5]合并之后 A 将变成 [1,2,3,4,5]

2017-04-07 16:18:11 393

原创 Lintcode 搜索旋转排序数组 II

跟进“搜索旋转排序数组”,假如有重复元素又将如何?是否会影响运行时间复杂度?如何影响?为何会影响?写出一个函数判断给定的目标值是否出现在数组中。您在真实的面试中是否遇到过这个题? Yes样例给出[3,4,4,5,7,0,1,2]和target=4,返回 true标签 二分法 排序数组 数组

2017-04-07 16:03:47 339

转载 青蛙跳台阶问题

(1)一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。(2)一只青蛙一次可以跳上1级台阶,也可以跳上2 级……它也可以跳上n 级,此时该青蛙跳上一个n级的台阶总共有多少种跳法?分析:1)当n = 1, 只有1中跳法;当n = 2时,有两种跳法;当n = 3 时,有3种跳法;当n = 4时,有5种跳法;当n = 5时,

2017-04-07 11:02:04 304

原创 Lintcode 搜索旋转排序数组

假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。你可以假设数组中不存在重复的元素。您在真实的面试中是否遇到过这个题? Yes样例给出[4, 5, 1, 2, 3]和target=1,返回 2

2017-04-06 19:58:43 810

原创 Lintcode 搜索区间

给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。如果目标值不在数组中,则返回[-1, -1]您在真实的面试中是否遇到过这个题? Yes样例给出[5, 7, 7, 8, 8, 10]和目标值target=8,返回[3, 4]挑战 时间复杂度 O(log n)标签 

2017-04-06 19:49:41 590

原创 Lintcode 二叉树的前序遍历 (递归和非递归法)

给出一棵二叉树,返回其节点值的前序遍历。您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3].挑战 你能使用非递归实现么?标签 递归 二叉树 二叉树遍历 非递归一、递归形式:

2017-04-06 19:16:58 3745

转载 C++的try、catch、throw异常

一、简单的例子首先通过一个简单的例子来熟悉C++ 的 try/catch/throw:1    #include                                 //包含头文件2    #include3    double fuc(double x, double y)                        //定义函数4    {5      

2017-04-05 22:11:37 401

原创 Lintcode 二叉查找树中搜索区间

给定两个值 k1 和 k2(k1 您在真实的面试中是否遇到过这个题? Yes样例如果有 k1 = 10 和 k2 = 22, 你的程序应该返回 [12, 20, 22]. 20 / \ 8 22 / \4 12标签 二叉查找树 二叉树二叉搜索树具有左子树都小于父节点,右子树大

2017-04-05 20:18:11 1262

原创 Lintcode 搜索插入位置

给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。你可以假设在数组中无重复元素。您在真实的面试中是否遇到过这个题? Yes样例[1,3,5,6],5 → 2[1,3,5,6],2 → 1[1,3,5,6], 7 → 4[1,3,5,6],0 → 0

2017-04-05 17:29:49 533

转载 白话经典算法系列之六 快速排序 快速搞定

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序

2017-04-05 10:45:44 359

转载 直方图对比,各种方法的范围

涉及到OpenCV中图像的复制、合并、直方图、绘制矩形、直方图对比等知识点。[cpp] view plain copyint main()  {      IplImage *srcImg = cvLoadImage("J:\\baboon.jpg");   //尺寸:512*512      IplImage *dstImg

2017-04-04 21:58:20 1496

转载 C语言字符串操作总结大全(超详细)

1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 st

2017-04-04 21:03:54 341

转载 c/c++字符串处理大集合

rember this strncpy(a,b,5); a[5]='\0'; char a[10]; memset(a,'#',sizeof(a)); a[10]='\0'; 刚开始学C/C++时,一直对字符串处理函数一知半解,这里列举C/C++字符串处理函数 ,希望对初学者有一定的帮助。 C: char st[100];

2017-04-04 20:14:14 294 1

原创 Lintcode 比较字符串

比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母 注意事项在 A 中出现的 B 字符串里的字符不需要连续或者有序。您在真实的面试中是否遇到过这个题? Yes样例给出 A = "ABCD" B = "ACD",返回 true给出 A = "ABCD" B = "AABC

2017-04-04 19:20:52 237

【免费】必应爬虫关键词

可以通过关键词搜索来对必应图片进行爬取,python脚本,自动保存,数据采集必备

2017-11-06

空空如也

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

TA关注的人

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