![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++面试
宁静的银杏树
这个作者很懒,什么都没留下…
展开
-
leetcode:Remove Nth Node From End of List
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *re原创 2014-04-30 15:10:05 · 519 阅读 · 0 评论 -
leetcode:4Sum
class Solution {public: vector > fourSum(vector &num, int target) { vector> result; result.clear(); sort(num.begin(),num.end()); int i,j,cur; for(i=0;i<num.size();i++) { i原创 2014-04-28 15:32:31 · 556 阅读 · 0 评论 -
海量数据处理:十道面试题与十个海量数据处理方法总结
作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http://blog.csdn.net/v_JULY_v。 第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。 首先是这一天,并且是访转载 2014-06-10 14:17:15 · 387 阅读 · 0 评论 -
Sum Root to Leaf Numbers
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti转载 2014-07-24 22:40:35 · 398 阅读 · 0 评论 -
leetcode: Merge Sorted Array O(n)解法
Given two sorted integer arrays A and B, merge B into A as one sorted array.Note:You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B.原创 2014-08-04 22:03:57 · 1405 阅读 · 0 评论 -
leetcode:Longest Consecutive Sequence
Given an unsorted array of integers, find the length of the longest consecutive elements sequence.For example,Given [100, 4, 200, 1, 3, 2],The longest consecutive elements sequence is [1, 2, 3,原创 2014-09-08 12:17:58 · 552 阅读 · 0 评论 -
蓄水池抽样及实现
原文链接:蓄水池抽样(Reservoir Sampling )是一个很有趣的问题,它能够在o(n)时间内对n个数据进行等概率随机抽取,例如:从1000个数据中等概率随机抽取出100个。另外,如果数据集合的量特别大或者还在增长(相当于未知数据集合总量),该算法依然可以等概率抽样。说蓄水池抽样之前,先说一下等概率随机抽取问题,等概率随机抽取是一个很有用的东西,因为在很多情况下,尤其是搞模式转载 2014-08-23 19:44:28 · 650 阅读 · 0 评论 -
关于数组的几道面试题
原文地址:http://blog.csdn.net/hackbuteer1/article/details/80352611、快速找出一个数组中的最大数、第二大数。 思路:如果当前元素大于最大数 max,则让第二大数等于原来的最大数 max,再把当前元素的值赋给 max。如果当前的元素大于等于第二大数secondMax的值而小于最大数max的值,则要把当前元素的值赋给 seco转载 2014-09-12 16:20:20 · 669 阅读 · 0 评论 -
面向对象的5个基本设计原则
面向对象的3个基本要素:封装、继承、多态面向对象的5个基本设计原则:单一职责原则(Single-Resposibility Principle) 其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖转载 2014-09-14 10:24:12 · 428 阅读 · 0 评论 -
leetcode:Sort Colors
Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue.Here, we will use the integers 0, 1转载 2014-09-04 22:58:33 · 450 阅读 · 0 评论 -
realloc函数
原型:extern void *realloc(void *ptr, size_t newsize); 用法:#include 功能:改变ptr所指内存区域的大小为newsize长度。 说明:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。 当内存不再使用时,应使用free()函数将内存块释放。#include #include int转载 2014-09-29 00:16:05 · 546 阅读 · 0 评论 -
leetcode:Swap Nodes in Pairs
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *sw原创 2014-05-13 16:55:54 · 448 阅读 · 0 评论 -
B-树和B+树的应用:数据搜索和数据库索引
B-树1 .B-树定义B-树是一种平衡的多路查找树,它在文件系统中很有用。定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树;⑶除根结点之外的所有非终端结点至少有[m/2] 棵子树;⑷所有的非终端结点中包含以下信息数据: (n,A0,K1,A1,K2,…,Kn,An)转载 2014-04-27 14:48:51 · 448 阅读 · 0 评论 -
leetcode:Binary Tree Postorder Traversal
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2014-04-17 22:23:06 · 496 阅读 · 0 评论 -
二叉树的非递归遍历
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍历 前序转载 2014-04-17 22:27:30 · 482 阅读 · 0 评论 -
一个程序包含几个段
站在汇编语言的角度,一个程序分为:数据段 -- DS堆栈段 -- SS代码段 -- CS扩展段 -- ES站在高级语言的角度,根据APUE,一个程序分为如下段:textdata (initialized)bssstackheap代码段 -- texttext段在内存中被映射为只读,但.data和.bss是可写的。text段是程序代码段,在AT91转载 2014-04-18 09:19:49 · 1083 阅读 · 0 评论 -
leetcode: Unique Binary Search Trees
class Solution {public: int numTrees(int n) { if(n<=1) return 1; if(n==2) return 2; vector sum(n+1,0); sum[0]=1; sum[1]=1; int i,j; for(i=2;i<=n;i++)原创 2014-05-06 16:44:27 · 440 阅读 · 0 评论 -
leetcode:Copy List with Random Pointer
比起标准的链表深拷贝,还需要了解一个random pointer的信息。需要建立起新的链表单元和旧的链表单元之间的一一对应关系,然后将所有旧的random pointer更换为新的random pointer。这样就要求两次扫描,O(2n)。原创 2014-04-27 17:35:23 · 436 阅读 · 0 评论 -
leetcode:Binary Tree Inorder Traversal
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2014-05-07 20:39:06 · 476 阅读 · 0 评论 -
leetcode:Binary Tree Level Order Traversal
如果直接是层次遍历的话比较容易,关键是每层要原创 2014-05-07 21:06:35 · 589 阅读 · 0 评论 -
leetcode:Reorder List
题目思路比较直接:1)把整个链表划分成2个等长的子链表,如果原链表长度为奇数,那么第一个子链表的长度多1。2)翻转第二个子链表;3)将两个子链表合并。代码里有些变量可以省去,为了看起来逻辑清晰,还是保留了。整个链表遍历了3次,但是没有使用额外空间。原创 2014-04-22 14:16:03 · 468 阅读 · 0 评论 -
音乐随机播放算法
源地址:常见的音乐随机播放算法主要有两种:一是Shuffle算法;二是Random算法。一 Shuffle算法Shuffle算法和排序算法正好相反,是从有序到乱序的一个过程,俗称洗牌算法。它将播放列表中的歌曲顺序打乱,变成一个和原来歌曲顺序没有任何关系的乱序的播放列表,之后进行歌曲的播放,并支持当用户点击“上一首”时,能够回到刚刚播放的那一首歌曲。二 Random算法Ran转载 2014-05-15 22:04:44 · 1080 阅读 · 0 评论 -
typedef和define具体的详细区别
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#define语句中的数字9 写成字母g 预处理也照样带入。 2)typedef是在编译时转载 2014-05-18 20:10:34 · 549 阅读 · 0 评论 -
#pragma pack(push,1) & #pragma pack(pop)
1 引子 在程序中,有的时候我们定义结构体的时候,要用#pragma pack(push,1) & #pragma pack(pop)类似代码将结构体包起来。一般形式如下:#pragma pack(push,1); struct A{ } ;#pragma pack(pop);这么做有什么目的呢? 注:下列内容来自网络。2 #pragma pa转载 2015-04-29 11:08:00 · 470 阅读 · 0 评论