- 博客(77)
- 资源 (2)
- 收藏
- 关注
转载 动态规划:从新手到专家
前言本文翻译自TopCoder上的一篇文章:Dynamic Programming: From novice to advanced,并非严格逐字逐句翻译,其中加入了自己的一些理解。水平有限,还望指摘。前言_我们遇到的问题中,有很大一部分可以用动态规划(简称DP)来解。解决这类问题可以很大地提升你的能力与技巧,我会试着帮助你理解如何使用DP来解题。这篇文章是基于实例展开来讲的,因为
2015-06-04 22:14:29
503
转载 常见算法:C语言求最小公倍数和最大公约数三种算法
最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接求最小公倍数算法:最小公倍数=两整数的乘积÷最大公约数求最大公约数算法:(1)辗转相除法有两整数a和b:① a%b得余数c② 若c=0,则b即为两数的最大公约数③ 若c
2015-06-03 14:25:35
783
转载 虚函数什么情况下会内联
转载自:http://blog.csdn.net/zy1691/article/details/3606128最近有个朋友研究了一下虚函数内联的问题,我也对这个问题产生了兴趣,发现网上也有好多讨论这个问题的,众说纷纭,于是花了点时间研究了一下。自己在vc下做了一些实验,通过观察各种情况下汇编代码,以及了一些资料的记载得出以下结论:虚函数是可以内联的据我所知有
2015-04-18 11:32:45
805
原创 TCP与UDP的区别
TCP(传输控制协议):1)提供IP环境下的数据可靠传输(一台计算机发出的字节流会无差错的发往网络上的其他计算机,而且计算机A接收数据包的时候,也会向计算机B回发数据包,这也会产生部分通信量),有效流控,全双工操作(数据在两个方向上能同时传递),多路复用服务,是面向连接,端到端的传输;2)面向连接:正式通信前必须要与对方建立连接。事先为所发送的数据开辟出连接好的通道,然后再进行数据
2015-04-15 22:43:51
554
转载 c++函数返回引用
函数返回值和返回引用是不同的函数返回值时会产生一个临时变量作为函数返回值的副本,而返回引用时不会产生值的副本,既然是引用,那引用谁呢?这个问题必须清楚,否则将无法理解返回引用到底是个什么概念。以下是几种引用情况: 1,引用函数的参数,当然该参数也是一个引用 const string &shorterString(const string &s1,c
2015-04-15 22:27:59
449
转载 什么样的类需要编写拷贝构造函数
1-什么时候会用到拷贝构造函数? 2-什么时候有必要手动写拷贝构造函数?1-什么时候会用到拷贝构造函数? 任何你想利用一个已有的类实例给另一个类实例赋值时,这种赋值可能是显式的,也可能是隐式的显式:classa_1=class_2;隐式:函数的形参有用到类对象却没有用引用或传址技术时 函数的返回值是一个对象也没有应用传址技术时2-什么时候
2015-04-15 22:25:59
699
转载 拷贝构造函数和赋值函数的必要性和意义
引题:网上看到这篇佳文,忍不住收藏以飨读者,当然还有自己!呵呵....... 重点:包含动态分配成员的类 应提供拷贝构造函数,并重载"="赋值操作符。 以下讨论中将用到的例子: class CExample { public: CExample(){pBuffer=NULL; nSize=0;} ~CExample(){delete pBuffer;
2015-04-15 22:23:51
596
转载 C++虚函数及虚函数表解析
原文链接:http://www.keepsimply.org/2012/07/11/cpp-vtable/作者:独酌逸醉时间:2012.07.11声明: 本文内容由自互联网资源(见参考资料)、个人的一些 C++ 学习感悟、个人实践整理而成。文章仅以技术学习和交流为目的。如果您发现了文中的错误,或者您有的不同的见解,可以给我留言或者给我发邮件,我们共同探 讨。如果您
2015-04-15 19:29:05
401
原创 Substring with Concatenation of All Words
You are given a string, S, and a list of words, L, that are all of the same length. Find all starting indices of substring(s) in S that is a concatenation of each word in L exactly once and without
2015-04-15 15:06:04
544
原创 Divide Two Integers
Divide two integers without using multiplication, division and mod operator.If it is overflow, return MAX_INT.Tag: 二分求解,相当于每次除数都乘以2,注意考虑负数的情况和整数溢出的情况。int divide(int dividend, int divisor)
2015-04-15 15:02:33
420
原创 灯塔(LightHouse)
DescriptionAs shown in the following figure, If another lighthouse is in gray area, they can beacon each other.For example, in following figure, (B, R) is a pair of lighthouse which can beacon e
2015-04-11 17:40:49
1253
原创 二分查找
在有序向量v[lo,hi)中返回不大于e的最后一个元素的位置。若e若e>v[hi-1],则返回hi-1当向量中存在多个e时,返回最后一个e的位置。int binarySearch(int vec[], int e, int lo, int hi){ while(lo < hi) { int mid = (lo + hi) >> 1; (e < vec[mid]) ?
2015-04-11 14:35:50
588
原创 归并排序(数组)
数组的归并排序。void merge(int vec[], int lo, int mid, int hi);void mergeSort(int vec[], int lo, int hi){ if(hi - lo < 2) return; int mid = (lo + hi) >> 1; mergeSort(vec, lo, mid); mergeSort(vec, mid
2015-04-11 13:47:39
789
原创 冒泡排序(优化版本)
对于类似于(3,2,1,5,6,7)的序列,可以看出这个序列的后缀是已经有序的,所以在前一趟扫描后发现后缀有序,在下一次扫描时就忽略有序的后缀,而不是仅仅长度减一,这样就能避免无谓的扫描。代码如下:int bubble(int vec[], int lo, int hi);void bubbleSort(int vec[], int lo, int hi){ while(l
2015-04-11 11:31:59
433
原创 Implement strStr()
Implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.Update (2014-11-02):The signature of the function had been updat
2015-04-10 22:37:42
444
原创 Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.Tag:两路归并struct ListNode { int val; ListNode *nex
2015-04-10 22:31:34
466
转载 6 Python Performance Tips
6 Python Performance TipsBy John Paul MuellerPosted in Tech Topics 21 January 2015 Python is such a cool language because you can do so much with it in such a short time with so little c
2015-02-20 13:18:03
680
转载 static变量的初始化,生存期,作用域
1、初始化。全局static变量的初始化在编译的时候进行。在main函数被调用之前初始化,并且,只初始化一次。函数static变量在函数中有效,第一次进入函数初始化。以后进入函数将沿用上一次的值。2、生存期。生存期,是main第一次执行,直到程序结束。比如下代码:#include #include int main() {
2015-02-16 22:02:11
1309
原创 Remove Element
Given an array and a value, remove all instances of that value in place and return the new length.The order of elements can be changed. It doesn't matter what you leave beyond the new length.
2015-02-16 21:18:29
517
原创 Remove Duplicates from Sorted Array
Given a sorted array, remove the duplicates in place such that each element appear onlyonce and return the new length.Do not allocate extra space for another array, you must do this in place w
2015-02-16 21:06:36
506
原创 Reverse Nodes in k-Group
Given a linked list, reverse the nodes of a linked listk at a time and return its modified list. If the number of nodes is not a multiple of k then left-out nodes in the end should remain as i
2015-02-15 23:15:32
493
原创 Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.For example,Given 1->2->3->4, you should return the list as 2->1->4->3.Your algorithm should use only constant spac
2015-02-14 00:41:39
451
原创 Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.Tag:使用优先队列,时间复杂度为n*log(k),其中n为所有元素个数,k为已排好序的链表,如果k很小的话,实现复杂度近乎为线性。#include #include #include us
2015-02-13 23:13:22
521
原创 Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:"((()))", "(()())", "(())()", "()(())", "
2015-02-13 00:25:49
376
原创 Trie树
Trie树的解释参见:http://blog.csdn.net/hguisu/article/details/8131559下面是用C++实现的代码#ifndef TRIE_H#define TRIE_H#define TRIE_SIZE_DEF 128const int TRIE_SIZE = TRIE_SIZE_DEF;union NODE_TYPE{ COM
2015-01-29 01:01:53
474
原创 Huffman树(使用优先队列优化)
实现了使用队列进行优化的Huffman树。#include #include #include #include using namespace std;struct Node{ int val; struct Node * left; struct Node * right;};typedef struct Node * p_Node;stru
2015-01-27 20:06:31
750
原创 A串减去B串中的字符
A串减去B串中的字符,要求不生成新的字符串。定义两个指针i和j,i用于保存字符,j用于扫描字符。思想可以扩展到在字符串中去掉冗余空格等问题。void func(char *A, const char *B){ int i = 0, j = 0; set s; while(B[i] != '\0') s.insert(B[i++]);
2015-01-23 19:36:26
811
原创 二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。如下面的二维数组就是每行、每列都递增排序。1 2 8 92 4 9 124 7 10 136 8 11 15按照剑指offer上面作者的解答,有如下规律:首先选取数组右上角的数字。如果该数字等
2015-01-22 22:59:12
427
原创 二叉树的遍历(递归与非递归)
前序遍历:操作顺序为:父节点 -> 左儿子 -> 右儿子递归版本struct node{ int data; struct node * left; struct node * right;};void preOrder(node *root){ if(root != NULL) { coutdata<<" ";
2015-01-12 20:15:01
447
转载 Google 面试题 第K小的数字 二分逼近&二分查找
题目描述: 给定两个整型数组A和B。我们将A和B中的元素两两相加可以得到数组C。譬如A为[1,2],B为[3,4].那么由A和B中的元素两两相加得到的数组C为[4,5,5,6]。现在给你数组A和B,求由A和B两两相加得到的数组C中,第K小的数字。 输入:输入可能包含多个测试案例。对于每个测试案例,输入的第一行为三个整数m,n, k(1
2015-01-11 23:52:59
502
原创 最优化之共轭梯度法
共轭梯度法是利用目标函数的梯度逐步产生共轭方向并将其作为搜索方向的方法。1. 共轭方向与共轭方向法定义:设H是n*n方阵且对称正定。(1)若对n维非零向量p和q,有p^THq = 0,则称p和q是H-共轭的;(2)若对n维非零向量组d1,...,dm,对任意的i != j,di与dj是H-共轭的,则称d1,...,dm是H-共轭方程组。当H = I,p^Tq = 0,即
2014-12-31 00:12:57
3148
原创 数字在排序数组中出现的次数
题目:统计一个数字在排序数组中出现的次数。Tag:二分int findNumK(int *num, int n, int K){ if(n == 0 || num == NULL) return 0; int firstK, lastK; int mid; //findFirstK int l = 0, r = n - 1;
2014-12-30 23:17:31
476
原创 最优化之牛顿法
求解无约束现行规划问题的Newton法是利用目标函数的二次Taylor展开式构造搜索方向的方法,它是以为搜索中的Newton法的推广。考虑UNP,其中f(x)二阶连续可微。Newton法就是以Newton方向为搜索方向,以1为步长进行迭代的方法。算法如下:1. 初始步。给定初始点x,精度参数e > 0。2. 终止判断。若||▽f(x)|| 3. 构造搜索方向。令d = -
2014-12-30 20:15:05
2538
原创 最优化之最速下降法
求解无约束非线性规划问题:min f(x),其中 f: Rn -> R1具有连续偏导。最速下降法的思想是:沿着目标函数在当前迭代点处欧式范数意义下的最速下降方向即负梯度方向进行一维搜索,从而得到新的迭代点。当目标函数在迭代点处的梯度与零向量接近到一定程度时,该点可作为UNP的近似最优解。算法:1. 选定初始数据。给出初始点x,精度参数e > 0.2. 终止判断。求g = ▽f(x)
2014-12-30 19:09:41
4045
原创 Valid Parentheses
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.The brackets must close in the correct order, "()" and "()[]{}" are all va
2014-12-23 23:10:33
361
原创 Remove Nth Node From End of List
Given a linked list, remove the nth node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the
2014-12-23 23:07:53
405
转载 有关 list 内存释放的小技巧
用python也有一段时间了,有了不少体会。平时老写要求效率很高的程序,发现python真的很不错。但是对于超大list的数据,内存经常需要立即释放。我总结了一些有关性能的技巧,看看大家能不能用上。1。大数据量的list,要进行局部元素删除,尽量避免用del随机删除,非常影响性能,如果删除量很大,不如直接新建list,然后用下面的方法释放清空旧list。2。对于一般性数据量超大的l
2014-12-17 13:41:41
8456
转载 翻译:Getting Started With Python For Data Science
翻译:Getting Started With Python For Data Science原文链接:http://www.kaggle.com/wiki/GettingStartedWithPythonForDataScience这篇教程假设读者能够使用python编程,但并不需要数据科学,机器学习或预测模型的知识。在实践中学习是一种黑客品质。所有这篇教程中的代码都可以在g
2014-12-17 02:36:29
687
转载 realloc
1. realloc失败的时候,返回NULL2. realloc失败的时候,原来的内存不改变,也就是不free或不move,(这个地方很容易出错)3. 假如原来的内存后面还有足够多剩余内存的话,realloc的内存=原来的内存+剩余内存,realloc还是返回原来内存的地址; 假如原来的内存后面没有足够多剩余内存的话,realloc将申请新的内存,然后把原来的内存数据拷贝到新内存里
2014-12-15 21:09:21
404
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人