自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode-122 Best Time to Buy and Sell Stock II

这题要求可以交易任意多次,其实就是找递增子序列例如:1 3 4 9 5 8 2 1 3则 9 - 1 + 8 - 5 + 3 - 1注意条件的判断不要写错啦class Solution {public: int maxProfit(vector& prices) { int len = prices.size(); if(len == 0)

2015-04-26 21:52:35 408

原创 leetcode-121 Best Time to Buy and Sell Stock

只有一次交易的情况比较简单,就是最大减去最小,但是最小的值一定要出现在最大之前class Solution {public: int maxProfit(vector& prices) { int len = prices.size(); if(len == 0) return 0; int min = prices[0];

2015-04-26 21:50:15 486

原创 leetcode-148 Sort List

递归解法:本来mergesort需要O(n)的空间复杂度,但这里是链表,所以只需要O(1)的空间复杂度要求时间复杂度为O(nlogn),那么不能用quickSort了(最坏O(n^2)),所以使用mergeSort.通常写排序算法都是基于数组的,这题要求基于链表。所以需要自己设计函数获得middle元素,从而进行切分。参考Linked List Cycle II中的“龟

2015-04-25 16:47:46 465

原创 leetcode-202 Happy Number

关键是当一个数不是happy number是,怎样退出循环自己的挫方法:使用set保存之前计算的所有数class Solution {public: bool isHappy(int n) { if(n <= 0) return false; if(n == 1) return true; set prev; pre

2015-04-23 20:10:33 486

转载 2013腾讯面经(技术类-后台开发)

阅读提示:如果有赶着去撸代码,玩dota / lol,把妹纸,内急……时间捉急又想吃快餐的同志,可以在直接跳过下面所有黑体字部分(因为黑体字部分都是写给我自己和个别基友看的)        面经百度百科定义:面试经验。求职者把面试经验写下来发布在BBS上供他人参考。而我个人觉得解释为:面试经历更为恰当,毕竟自己仍是弱菜一枚,并没有高深的技艺可以被列为经验之称。只是记录一下面试过程罢了。  

2015-04-21 11:01:21 711

转载 腾讯一面二面终面真题

一面题目:  1。 简单自我介绍  2。 大学期间自己做过的最成功的一件事  3。 如果遇到一个以前完全没接触过的技术,会怎么去学习  4。 接下来的学习计划是什么  5。 觉得大学里最难学的课程是什么  6。 如何统计深圳市便利店的数目,说思路  7。 如果你一个人在一间偏僻且设备简陋的酒店,某天晚上很晚,你突然想吃烧烤,你会怎么做?(旁边

2015-04-21 10:48:54 1546

转载 腾讯科技(北京)有限公司--面试题

腾讯科技(北京)有限公司                                                               ——c++面试题请各位面试者,标明题号,直接把答案写在答题纸上面,写在其他地方均无效。答题时间60分钟总体涉及到的知识点包括:运算符优先级、汇编、内存分配、进程控制、排列组合、SQL语句、贪心算法、队列堆栈、回文、完全二叉树、排序算法

2015-04-21 10:41:48 1630

转载 腾讯后台开发三面面试题

三面是总监面,本人不幸被拒了,这次面试没有问项目相关的问题,项目的问题是放在二面问的。三面给人的 感觉要求很严,有些问题看似基础,但问得很细,稍有闪失就被pass,绝不能有模棱两可那种回答,以下是面试题:1)tcp三次握手的过程,accept发生在三次握手哪个阶段?2)Tcp流, udp的数据报,之间有什么区别,为什么TCP要叫做数据流?3)const的含义

2015-04-21 10:40:16 1107

转载 腾讯面试题总结,似乎是面试C++方向的(小巫总结)

腾讯面试题总结,似乎是面试C++方向的(小巫总结)这份面试题是我在网上收集到的,是C++的,本人是搞Java的,C++以前也稍微接触过,在这里我稍微总结一下这份面试题,供需要的人参考。电话面试题目:1. 异步通信和同步通信的区别?同步通信与异步通信区别:   1.同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;

2015-04-21 10:37:37 635

转载 2014腾讯面试题整理

1. 根据以下代码?int ack(int m,int n){if(m == 0)return n + 1;else if(n == 0)return ack(m-1,1);elsereturn ack(m – 1 , ack(m , n-1));}如果ack(3,3),。结果为多少2. 请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所

2015-04-21 10:33:56 601

转载 腾讯一面二面题目

腾讯一面1、  new&delete 和malloc&free的区别2、  select 和pool的区别3、  内存分配有几种方式?请举例说明答:四种:静态区,bss,堆,栈4、  解释i-node5、  UDP缓存多大6、  线程&进程7、  进程间通信方式8、  设计题:约10亿qq用户,每个用户可以设定100字符以内的个人签名,请设计一个服务器如何高

2015-04-21 10:31:24 2174

转载 2013 腾讯一面面试题

1. 自我介绍 2. 项目介绍,用了什么算法 3. TCP/IP 三次握手,??攻击 4. vector怎么实现动态空间分布;map用什么实现的;红黑树是什么,有什么特点;hashtable怎么实现的 5. 一个结构, 有一个long和char的变量,它们的大小是多少;有没有其它的答案,比如64位 6. 你觉得C++里面的const是怎么实现的 7. 进程和线程的区别?(答

2015-04-21 10:28:18 447

转载 2014腾讯实习一面面试题

下面是我和同学去面试腾讯实习一面的面试题,仅供参考!我的面试题时间:2014.4.23 下午2:40 ~ 3:15网络:TCP/IP协议栈各个层次及分别的功能下面提供一个参考答案:网络接口层:这是协议栈的最低层,对应OSI的物理层和数据链路层,主要完成数据帧的实际发送和接收。网络层:处理分组在网络中的活动,例如路由选择和转发等,这一层主要包括IP

2015-04-21 10:24:18 688

原创 leetcode-119 Pascal's Triangle II

我自己的解法(和Pascal's Triangle的解法大致一样,只不过不用保存前面k-1行的结果)class Solution {public: vector getRow(int rowIndex) { vector res; if(rowIndex < 0) return res; for(int i = 0; i <= rowI

2015-04-19 16:41:27 406

原创 leetcode-107 Binary Tree Level Order Traversal II

和Binary Tree Level Order Traversal相比,就是多了最后的一个反转/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x),

2015-04-19 16:23:03 421

转载 leetcode-125 Valid Palindrome

题目要求忽略数字字母之外的字符(遇到直接跳过),并且忽略大小写这道题是判断一个字符串是不是回文串。因为只是看一个字符串,算法还是比较简单,就是从两头出发,往中间走,进行两两匹配。这里面的小问题就是在这个题目要求中,只判断字母和数字类型的字符,其他字符直接跳过即可。因此我们要写一个函数判断他是不是合法字符,而且因为忽略大小写,我们在判断两个字符是不是相同的时候如果是大写,要转成相应的小写字母。这

2015-04-15 13:57:18 357

原创 leetcode-160 Intersection of Two Linked Lists

剑指offer上的题目,自己的比较挫的代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution

2015-04-15 10:11:05 363

原创 leetcode-168 Excel Sheet Column Title

看起来好像是很简单的进制转换,但注意是转换是从1开始计数的,不是从0开始的,所以不是直接地做26进制转换那么简单,需要中间做一些变换,和171题是互逆的class Solution {public: string convertToTitle(int n) { string s; if(n <= 0) return s; whi

2015-04-15 09:43:11 352

转载 leetcode-172 Factorial Trailing Zeroes

看上去简单,但是写出logarithmic time complexity的代码还是需要一些思考的。分析在下面的代码注释中。//计算包含的2和5组成的pair的个数就可以了,一开始想错了,还算了包含的10的个数//因为5的个数比2少,所以2和5组成的pair的个数由5的个数决定。//观察15! = 有3个5(来自其中的5, 10, 15), 所以计算n/5就可以但是25

2015-04-14 18:28:24 414

原创 leetcode-34 Search for a Range

这破题,把我弄的心烦意乱,就是三次折半,不过后两次有些特殊class Solution {public: vector searchRange(int A[], int n, int target) { vector res(2,-1); if(n <= 0) return res; int low = 0,high = n-1,mid

2015-04-14 15:22:14 532

转载 leetcode-3 Longest Substring Without Repeating Characters

这题似曾相识,似乎是数据结构课做过的题,不过忘得一干二净。。。。一开始傻呵呵的用了暴力方法,慢的要死;看到提示了知道可以用一个table来存储每一个字符在字符串中的位置。其实这是一个对于字符串问题的通用方法,因为字符本质上就是一个Unique的数字,因此建立一个数组,数组的下标表示这个字符的ASCII码,元素表示其在字符串中的位置即可。另外一个逻辑就是当遇到和之前重复的字符(前一次出现称为Oc

2015-04-13 21:32:48 384

原创 leetcode-77 Combinations

这题是组合问题,与排列问题(permutation)有些不一样,不过大体思路是一样的,dfs里面套着一个循环class Solution {public: vector > combine(int n, int k) { vector > res; vector tmpres; if(k n) return res;

2015-04-13 15:57:39 484

原创 leetcode-46 Permutations

这一题的思路和剑指offer上字符串的全排列的思路一样,先固定一个元素,后面的所有元素依次和它交换(DFS+回朔)class Solution {public: vector > permute(vector &num) { vector > res; helper(num,0,res); return res; } v

2015-04-12 21:31:59 435

转载 五大常用算法之四:回溯法

1、概念      回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。   回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。    

2015-04-12 20:04:43 432

转载 leetcode-198 House Robber

题目大意:你是一名专业强盗,计划沿着一条街打家劫舍。每间房屋都储存有一定数量的金钱,唯一能阻止你打劫的约束条件就是:由于房屋之间有安全系统相连,如果同一个晚上有两间相邻的房屋被闯入,它们就会自动联络警察,因此不可以打劫相邻的房屋。给定一列非负整数,代表每间房屋的金钱数,计算出在不惊动警察的前提下一晚上最多可以打劫到的金钱数。解题思路:动态规划(Dynamic Pro

2015-04-12 12:47:12 684

转载 类成员函数继承(virtual、非virtual)

类继承★ 对于父类函数(virtual、非virtual),如果子类没有同名函数,则正常继承★ 对于父类函数(virtual、非virtual),如果子类有同名函数,无同型函数,则不能调用父类函数★ 对于父类函数(virtual、非virtual),如果有同型函数:----非virtual函数由指针类型决定调用哪个----virtual函数由指针指向的对象决

2015-04-12 11:30:54 737

原创 leetcode-192 Word Frequency

一行命令方法一cat words.txt | tr -s ' ' '\n' | sort | uniq -c | sort -nr | awk '{print $2 " " $1}'解释:tr -s ' ' '\n'  用换行替换空格,这样每一行就是一个单词了sort -nr n是以数字排序 r是逆序(降序)方法二:awk '{for(i=1;i

2015-04-11 20:45:09 1342

原创 leetcode-190 Reverse Bits

很巧妙的解法 因为是无符号数,所以移位也不用担心什么符号位的问题class Solution {public: uint32_t reverseBits(uint32_t n) { uint32_t m = 0; for(int i=0; i >=1){ m <<= 1; m |= n & 1;

2015-04-11 17:30:18 417

原创 leetcode-9 Palindrome Number

回文,要求不能使用extra space负数不是回文将数翻转可能会溢出将数转换为字符串有需要额外的空间巧妙的解法class Solution {public: bool isPalindrome(int x) { if(x < 0 || (x != 0 && x % 10 == 0)) return false; int res = 0

2015-04-11 14:54:24 400

原创 leetcode-194 Transpose File

感觉很扯淡的一题,自己写的总是memory limit exceed或者time limit exceedmemory limit exceed#!/bin/bashcols=$(head -n 1 file.txt | wc -w) //统计有多少列for((i=1; i<=$cols; i=i+1)){ line=$(cut -d ' ' -f ${i} file.txt

2015-04-11 12:16:56 1921

原创 leetcode-2 Add Two Numbers

这题没什么难的,需要注意下边界情况:例如两个链表最后一位相加之后产生了进位的情况我的代码(not concise not elegant)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) :

2015-04-10 15:17:40 1069

原创 leetcode-193 Valid Phone Numbers

两种格式的电话号码,可以使用条件分支:或者(|)。还有一点要注意的就是必须在每个正则表达式的首尾加^和$,不然这样的行也会被选出来的0(001) 345-0000(001) 345-0000111正确的答案:egrep '^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$|^[0-9]{3}-[0-9]{3}-[0-9]{4}$' file.txt更好的答

2015-04-10 12:39:01 2548

原创 leetcode-195 Tenth Line

打印一个文件中的第10行,需要注意的是如果没有10行的话,则什么也不打印所以可以有下面几种方法:方法一:awk 'NR==10' file.txt  //awk的默认动作就是打印$0,所以NR==10后面可以不用加{print $0}方法二:sed -n '10p' file.txt  //如果不够10行,则什么也不打印方法三:line=$(cat file.t

2015-04-10 12:25:43 2982

原创 leetcode-173 Binary Search Tree Iterator

主要思想就是中序遍历/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * };

2015-04-09 15:29:40 387

原创 leetcode-199 Binary Tree Right Side View

这题的意思就是返回每层的最右节点的值,所以使用层序遍历。这就引出了一个问题,如何标志每一层,这里使用了两个变量current和next表示当前层的节点的个数和下一层的节点的个数,也可以使用两个队列(参考二叉树的非递归遍历方法中的层序遍历)/** * Definition for binary tree * struct TreeNode { * int val; *

2015-04-09 14:32:29 968

转载 leetcode-43 Multiply Strings

开始参考discuss写了下面的程序class Solution {public: string multiply(string num1, string num2) { int len1 = num1.size(),len2 = num2.size(); if(len1 == 0 || len2 == 0) return "0"; /

2015-04-09 12:50:50 509

原创 leetcode-48 Rotate Image

对于nxn的矩阵,顺时针旋转90度,则第i行变成第n-i-1列(n为行数),第j列变成第j行,即:[i][j] ----- [j][n-i-1]但是使用这种方法需要的空间复杂度为O(nxn),题目要求O(1)的空间复杂度所以有下面的方法:/* * clockwise rotate * first reverse up to down, then swap the symme

2015-04-09 10:58:38 598

转载 leetcode-93 Restore IP Addresses

原题链接: http://oj.leetcode.com/problems/restore-ip-addresses/ 这道题的解法非常接近于NP问题,也是采用递归的解法。基本思路就是取出一个合法的数字,作为IP地址的一项,然后递归处理剩下的项。可以想象出一颗树,每个结点有三个可能的分支(因为范围是0-255,所以可以由一位两位或者三位组成)。并且这里树的层数不会超过四层,因为IP地址由四

2015-04-08 18:33:54 557

原创 leetcode-129 Sum Root to Leaf Numbers

DFS的题目好像都是用递归遇到递归的时候,把终止条件,各种条件想清楚就可以大胆写了,可以先举几个简单的例子帮助/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int

2015-04-08 18:18:27 418

转载 C++类对象内存模型与成员函数调用分析(下)

2.4.2 多重继承下的虚拟函数多重继承下的虚拟函数主要有一下几个麻烦:1.         几个父类都声明了相同原型的virtual函数;2.         有不止一个父类将其析构函数声明为虚拟;3.         一般的虚拟函数问题;先给出代码段9。class Parent1{public:   Parent1() : data_parent1(0.0)

2015-04-08 11:34:12 469

汽车租赁系统

汽车租赁数据库课程设计,C#版,mysql数据库。

2012-07-02

空空如也

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

TA关注的人

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