自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (4)
  • 收藏
  • 关注

原创 189. Rotate Array

Rotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4]. Note: Try to come up as many solutions as you can, th

2016-03-27 22:24:06 447

原创 169. Majority Element

Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element always

2016-03-27 19:33:05 310

原创 Leetcode数组类题目

Move Zeroes:Easy。双指针。Contains Duplicate:Easy。hashtable。Majority Element:Easy。但是对答案的扩展不明白。Remove Element:Easy。双指针。Remove Duplicates from Sorted Array:Easy。双指针。Plus One:Easy。Pascal’s Triangle:Easy。

2016-03-27 19:01:18 910

原创 160. Intersection of Two Linked Lists

Write a program to find the node at which the intersection of two singly linked lists begins.For example, the following two linked lists: begin to intersect at node c1.Notes: •If the two linked lists

2016-03-26 22:58:58 355

原创 Leetcode链表类题目

Delete Node in a Linked List&在O(1)时间删除链表结点:Easy。Reverse Linked List&反转链表:Easy。dummy头结点。Odd Even Linked List:Easy。Remove Duplicates from Sorted List:Easy。注意while循环条件。Merge Two Sorted Lists &合并两个排序的链

2016-03-25 16:37:46 669

原创 最接近的数

题目描述有一个正整数,请找出其二进制表示中1的个数相同、且大小最接近的那两个数。(一个略大,一个略小)给定正整数int x,请返回一个vector,代表所求的两个数(小的在前)。保证答案存在。测试样例:2 返回:[1,4]解答位操作法取得后一个较大的树  以数字13948为例,二进制表示如下:   我们想让这个数大一点,但又不会太大,同时1的个数又要保持不变。你会发现:给定一个数 和两个位的

2016-03-21 16:10:10 1295

原创 二进制小数

题目描述有一个介于0和1之间的实数,类型为double,返回它的二进制表示。如果该数字无法精确地用32位以内的二进制表示,返回“Error”。给定一个double num,表示0到1的实数,请返回一个string,代表该数的二进制表示或者“Error”。测试样例:0.625 返回:0.101解答注意,为了表示清晰,我们x2,x10 x_{2},x_{10} 来表示x是二进制还是十进制。 首先,我

2016-03-21 15:49:17 548

原创 二进制插入

题目描述有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始。 给定两个数int n和int m,同时给定int j和int i,意义如题所述,请返回操作后的数,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1。测试样例:1024,19,2,6 返回:1100解答这个问题的解决可以分为三个步骤:将n中从第j位到

2016-03-21 15:15:47 787

转载 重载函数调用运算符:()

如果类重载了函数调用运算符(),则我们可以像使用函数一样使用该类的对象。因为这样的类同时也能存储状态,所以与普通函数相比它们更加灵活。   下面这个名为absInt的struct含有一个调用运算符,改运算符负责返回其参数的绝对值。   struct absInt{ int operator()(int val) const { return val<0?-val

2016-03-21 11:50:22 4590

转载 word 2013 参考文献插入及交叉引用的实现方法(转自百度经验)

撰写论文时,不免要遇到需要插入参考文献的时候,这一篇经验是为了写如何手动插入参考文献引用,以及相关操作,以下是详细步骤。将鼠标光标移到文本中需要第一次引用参考文献的位置,点击“引用”选项卡,接着选择“右下角小箭头,弹出“脚注和尾注”窗口;依次选择“尾注”->“文档结尾”->编号格式“1,2,3”->连续编号->插入->“关闭”:点击“插入尾注”光标会对自动跳到文件尾部,在此处输入参考文献,注意这

2016-03-16 22:08:16 3177

原创 vector--resize

void resize (size_type n);将元素数量改为n,如果修改后的vector的size变大,多出来的新元素都需要用default构造函数完成初始化void resize (size_type n, const value_type& val);将元素数量改为n,如果修改后的vector的size变大,多出来的新元素都是val的拷贝

2016-03-14 21:34:32 293

原创 295. Find Median from Data Stream&数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。解答   如上图所示,如果数据在容器中已经排序,那么中位数可以由和指向的数得到。如果容器中数据的个数是奇数,那么和 指向同一个数据。   注意到,整个容器被分隔成了两部分。位于容器左边部分的数据比右边的数

2016-03-14 09:25:14 2105

翻译 STL中的heap算法

就排序而言,heap是一种特别的元素组织方式,应用于heap排序法。Heap可以被视为一个以序列式集合实现而成的二叉树。具有两大性质:第一个元素总是最大总是能够在对数时间内增加或者移除一个元素。======   Heap是实现优先级队列的一个理想结构,因此heap算法也被priority_queue容器使用。为了处理heap,STL提供了四个算法:make_heap():将某区间内的元素

2016-03-13 23:21:25 631

原创 魔术索引2

题目描述在数组A[0..n-1]中,有所谓的魔术索引,满足条件A[i]=i。给定一个不下降序列,元素值可能相同,编写一个方法,判断在数组A中是否存在魔术索引。请思考一种复杂度优于o(n)的方法。 给定一个int数组A和int n代表数组大小,请返回一个bool,代表是否存在魔术索引。 测试样例: [1,1,3,4,5] 返回:true解答  如果数组的元素有重复,魔术索引1中的方法就会失效。

2016-03-07 22:48:05 624

原创 魔术索引1

题目描述在数组A[0..n-1]中,有所谓的魔术索引,满足条件A[i]=i。给定一个升序数组,元素值各不相同,编写一个方法,判断在数组A中是否存在魔术索引。请思考一种复杂度优于o(n)的方法。 给定一个int数组A和int n代表数组大小,请返回一个bool,代表是否存在魔术索引。 测试样例: [1,2,3,4,5] 返回:false解答暴力法class MagicIndex {publi

2016-03-07 22:38:27 792

原创 机器人的运动范围

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?解答与79. Word Search&矩阵中的路径

2016-03-07 14:58:34 484

原创 79. Word Search&矩阵中的路径

题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如上图的3*4矩阵中包含一条字符串”bcced”的路径,但是矩阵中不包含”abcb”路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径

2016-03-07 09:53:17 565

原创 虚函数(virtual function)

在C++中,当我们使用基类的引用或指针调用一个虚成员函数时,会执行动态绑定。因为我们直到运行时才能知道到底调用了哪个版本的虚函数,所以所有虚函数必须都有定义。通常情况下,如果我们不使用某个函数,则不需要为该函数提供定义。但是,我们必须为没一个虚函数都提供定义,而不管它是否被用到。对虚函数的调用可能在运行时才被解析  当某个虚函数通过引用或指针被调用时,编译器产生的代码知道运行时才能确定应该调用哪个版

2016-03-05 17:28:34 940

原创 求1+2+3+...+n

题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。解答  通常求1+2+3+…+n,除了用公式(1+n)*n/2之外,无非使用递归和循环两种思路。由于已经明确限制不能使用for和while,所以不能使用循环。递归函数也需要if语句或者条件判断语句来判断递归式继续执行还是终止,所以递归也没办法使用。利用构造

2016-03-05 16:28:56 787

原创 不用加减乘除做加法

题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。解答  首先,我们分析人们是如何做十进制的加法的。例如,如何得到7+15=22这个结果。实际上,我们可以分成三步进行:   只做各位相加,不进位。这个时候的相加结果是12(个位数5和7相加不进位是2,十位数0和1相加结果是1);做进位,5+7有进位,进位的值是10;把第1步和第二步的两个结果相加,结果是22

2016-03-05 15:49:19 633

原创 C++类的静态成员(static members in classes)

声明静态成员  通过在成员的声明之前加上关键字static使得其与类关联在一起。与其他成员一样,静态成员可以是public或private的。静态数据成员的类型可以是常量、引用、指针、类类型。   下面以银行的账户记录为例   class Account{public: void caculate() { amount += amount *interestR

2016-03-05 11:28:13 1228

原创 191. Number of 1 Bits&二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解答错误的,可能引起死循环解法  先判断整数二进制表示中最右边一位是不是1。接着把输入的整数右移一位,此时原来处于右边起的第二位被移到最右边,再判断它是不是1。这样每次移动一位,直到整个整数变成0为止。   那么如何判断一个整数的最右边是不是1。只要把整数和1做按位与运算,看结果是否为0就可以判断。1除了最右边的一位以外,所有

2016-03-04 09:47:35 519

原创 位运算

手工位操作^表示XOR(异或)操作~表示非(取反)操作一个数与相乘,相当于这个数左移n位~0的值就是一串1,将它左移n位后的结果就是一串1后面跟n个0。x&(~0 << n)的操作会将x最右边的n位清零。左移运算符m << n表示把m左移n位。左移的时候,最左边的n位将被丢弃,同时在最右边补上n个0。右移运算符m>>n表示把m右移n位。右移n位的时候,最右边的n位将被丢弃。但右移处理时左

2016-03-04 09:21:00 423

原创 位运算

手工位操作^表示XOR(异或)操作~表示非(取反)操作一个数与相乘,相当于这个数左移n位一个比特与对它取反的值做异或操作,结果总是1,所以a^(~a)的结果是一串1。 -~0的值就是一串1,将它左移n位后的结果就是一串1后面跟n个0。 x&(~0位操作的原理与技巧以下示例中的“1s”和“0s”分别表示一串1和一串0x ^ 0s = x,因为异或操作,相同数字为0,不同才

2016-03-04 09:00:23 623

原创 最小的K个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。解答  我们可以先创建一个大小为K的数据容器来存储最小的K个数字。接下来我们每次从输入的N个整数中读入一个数。如果容器中已有的数字少于K个,则直接把这次读入的整数放入容器中;如果容器中已有K个数字了,也就是说容器已经满了,此时我们不能再直接插入新的数字,而是要替换已有的数字

2016-03-03 21:44:26 394

原创 235. Lowest Common Ancestor of a Binary Search Tree&236. Lowest Common Ancestor of a Binary Tree

问题描述235.Lowest Common Ancestor of a Binary Search TreeGiven a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikiped

2016-03-03 09:48:27 305

原创 树的子结构

题目描述输入两颗二叉树A,B,判断B是不是A的子结构。解答  要查找树A中是否存在和树B一样的子树,我们可以分成两步: 1. 在树A中找到和B的根节点的值一样的结点R 2. 判断以R为根节点的子树是不是包含和B一样的结构。   以题目中的两棵树为例来分析这一过程。   首先我们在树A中找到值为8(树B的根结点的值)的结点。从树A的根结点开始遍历,我们发现它的根结点的值就是8。接着我们去判

2016-03-02 23:04:40 285

原创 高度最小的BST&&108. Convert Sorted Array to Binary Search Tree

题目描述对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。 给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。解答  要创建一棵高度最小的树,就必须让左右子树的结点数量越接近越好。也就是说,我们要让数组中间的值成为根节点,这样数组左边一半成为左子树,右边一半成为右子树。   然后我们以类似的方式构造整棵树。数组每一区段的中间元素成为子树的

2016-03-02 11:09:15 351

原创 集合栈

题目描述请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈。该数据结构应支持与普通栈相同的push和pop操作。 给定一个操作序列int[][2] ope(C++为vector解答  算是考细节的题吧,认真些。   class SetOfStacks {public: vector<vector<int> > setOfSt

2016-03-01 21:45:43 647

原创 234. Palindrome Linked List&回文链表

题目描述请编写一个函数,检查链表是否为回文。 给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。 测试样例: {1,2,3,2,1} 返回:true {1,2,3,2,3} 返回:false解答翻转并比较  反转整个链表,然后比较反转链表和原始链表。若二者相同,则该链表为回文。 注意链表反转算法的使用,不能修改原始链表。/*struct List

2016-03-01 21:24:04 599

原创 237. Delete Node in a Linked List&在O(1)时间删除链表结点

题目Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3,

2016-03-01 15:08:33 380

原创 翻转子串

题目描述假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。 给定两个字符串s1,s2,请返回bool值代表s2是否由s1旋转而成。字符串中字符为英文字母和空格,区分大小写,字符串长度小于等于1000。 测试样例: “Hello world”,”worldh

2016-03-01 10:27:19 362

原创 清除行列

题目描述请编写一个算法,若MxN矩阵中某个元素为0,则将其所在的行与列清零。 给定一个MxN的int[][]矩阵(C++中为vector>)mat和矩阵的阶数n,请返回完成操作后的int[][]矩阵(C++中为vector>),保证n小于等于300,矩阵中的元素为int范围内。 测试样例: [[1,2,3],[0,1,2],[0,0,1]] 返回:[[0,0,3],[0,0,0],[0,0,

2016-03-01 10:11:48 503

原创 像素翻转

题目描述有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。 测试样例: [[1,2,3],[4,5,6],[7,8,9]],3 返回:[[7,4,1],[8,5,2],[9,6,3]

2016-03-01 09:37:46 455

vs2010.vssettings

vs2010.vssettings

2016-04-06

设计模式--design patterns课件

哈工大威海--孙玉山老师的设计模式课件,讲的非常之详细

2011-09-12

Ubuntu下Mentohust的用法

mentohustd的使用,很详细,希望对你有帮助

2011-09-11

空空如也

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

TA关注的人

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