C++
宁静的银杏树
这个作者很懒,什么都没留下…
展开
-
C++学习笔记 -- 虚析构函数与纯虚析构函数
开始学C++了,所以又重拾以前学习过的相关概念… 析构函数是当一个对象的生命周期结束时,会自动执行析构函数。 析构函数的定义: #ifndef __A_H__ #define __A_H__ class A { public: A(void); A(int a, int b); ~A(void); //析构函数 private: int a;转载 2014-03-28 15:02:00 · 558 阅读 · 0 评论 -
Leetcode:Median of Two Sorted Arrays
求两个排队序列的中位数,我首先想到的是二路归并排序算法,这样做避免了各种情况的分析,相对比较简单,时间复杂度是O(m+n). class Solution { public: double findMedianSortedArrays(int A[], int m, int B[], int n) { int mid=(m+n)/2; int i=原创 2014-03-26 14:27:19 · 793 阅读 · 0 评论 -
leetcode:Sqrt(x) 牛顿迭代法求整数开方
牛顿迭代法求Sqrt(x) 为了方便理解,就先以本题为例: 计算x2 = n的解,令f(x)=x2-n,相当于求解f(x)=0的解,如左图所示。 首先取x0,如果x0不是解,做一个经过(x0,f(x0))这个点的切线,与x轴的交点为x1。 同样的道理,如果x1不是解,做一个经过(x1,f(x1))这个点的切线,与x轴的交点为x2。 以此类转载 2014-04-10 15:46:23 · 1563 阅读 · 0 评论 -
音乐随机播放算法
源地址: 常见的音乐随机播放算法主要有两种:一是Shuffle算法;二是Random算法。 一 Shuffle算法 Shuffle算法和排序算法正好相反,是从有序到乱序的一个过程,俗称洗牌算法。它将播放列表中的歌曲顺序打乱,变成一个和原来歌曲顺序没有任何关系的乱序的播放列表,之后进行歌曲的播放,并支持当用户点击“上一首”时,能够回到刚刚播放的那一首歌曲。 二 Random算法 Ran转载 2014-05-15 22:04:44 · 1095 阅读 · 0 评论 -
leetcode:Sort List
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *so原创 2014-04-11 11:11:22 · 456 阅读 · 0 评论 -
leetcode:Plus One
class Solution { public: vector plusOne(vector &digits) { int len=digits.size(); int i,carry=1; for(i=len-1;i>=0;i--) { digits[i]=digits[i]+carry; carr原创 2014-04-11 14:01:04 · 485 阅读 · 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 · 558 阅读 · 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 · 455 阅读 · 0 评论 -
leetcode:3Sum
求一个队列中三个之和为0的子列,并以非原创 2014-04-28 14:13:11 · 553 阅读 · 0 评论 -
for_each的用法
源地址: Abstract 之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL) 曾經討論過for_each(),不過當時功力尚淺,只談到了皮毛而已,這次看了effective STL的item 41、43後,對for_each()又有了更深入的了解,因此做了本篇心得報告。 Motivation 看到了eXile的C++中实现 fore转载 2014-05-25 12:05:45 · 462 阅读 · 0 评论 -
leetcode:String to Integer (atoi)
由于以前对atoi()函数理解的不够透彻,原创 2014-04-08 11:21:34 · 496 阅读 · 0 评论 -
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 · 525 阅读 · 0 评论 -
leetcode:Palindrome Number
晚上做了两道回文的题目,一道是回文数,一道是回文字符串,自己写的代码考虑的不清楚,出现了许多逻辑错误,下面列了三种比较简洁的代码,供后面学习。 1.第一种 class Solution { public: bool isPalindrome(int x) { if(x<0) return false; if(x==0) return true;原创 2014-03-30 22:52:38 · 490 阅读 · 0 评论 -
C++ 将整个文件一次读入string
IOStream著名专家Dietmar Kuehl给过两个方法 1、使用流迭代器 这种方法很简单方便,但有一个缺点就是会将文件中的空格省掉 std::ifstream in("some.file"); std::istreambuf_iterator beg(in), end; std::string str(beg, en转载 2014-05-04 15:48:40 · 2063 阅读 · 0 评论 -
Leetcode:Evaluate Reverse Polish Notation
这道题主要是用stack栈来进行逆波兰式的算法描述,实现不是很难,不过注意string类型的一些基本函数,比如:stoi(),atoi()等。 #include #include class Solution { public: int evalRPN(vector &tokens) { stack stas; int ret=0,len=tokens.siz原创 2014-03-23 10:29:05 · 712 阅读 · 0 评论 -
LeetCode题解:Single Number
class Solution { public: int singleNumber(int A[], int n) { int result=0; result=A[0]; for(int i=1;i<n;i++) { result=result^A[i]; }原创 2014-03-23 10:55:30 · 856 阅读 · 0 评论 -
leetcode:Word Break
class Solution { public: bool wordBreak(string s, unordered_set &dict) { int n=(int)s.size(); vector dp(n+1,false); dp[0]=true; for(int i=1;i<=n;i原创 2014-03-25 16:49:30 · 1154 阅读 · 0 评论 -
leetcode:Longest Substring Without Repeating Characters
这道题比较简单,我用了暴力破解的解法,但要注意字符串s为空的特殊情况。 class Solution { public: int lengthOfLongestSubstring(string s) { int i=0,j=0,max=1; int len=s.size(); int flag=len; if(len==0) ret原创 2014-03-26 16:26:21 · 444 阅读 · 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 · 409 阅读 · 0 评论