
算法
文章平均质量分 69
勇哥聊IT
分享编程心得,共赏技术风景
展开
-
快速排序
#include #include #include using namespace std;#define N 20#define MAX_VALUE 100 //生成随机数最大值#define LINE_COUNT 10 //每行打印个数templateint partition(T a[],int l,int r){ int i=l,j=r+1; T x=a[原创 2013-02-27 22:08:03 · 425 阅读 · 0 评论 -
动态规划面试题
动态规划求不相邻的最大子数组和原创 2013-09-18 16:40:04 · 2855 阅读 · 0 评论 -
红黑树
教你透彻了解红黑树转载 2013-09-20 21:56:12 · 682 阅读 · 0 评论 -
一致性哈希算法
http://blog.youkuaiyun.com/sparkliang/article/details/5279393转载 2013-10-05 10:07:48 · 666 阅读 · 0 评论 -
常见笔试面试题2
网易 - 2012校园招聘笔试题 - 打印序列转载 2013-09-06 22:25:53 · 1069 阅读 · 0 评论 -
二叉树
#include #include #include using namespace std;struct Node{ int data; Node *left,*right; };class Btree{private: Node *root;public: Btree(){ root=NULL; } Btree(int x原创 2013-03-07 16:42:13 · 1071 阅读 · 0 评论 -
装载问题
参考:计算机算法设计与分析(第三版)王晓东 编著1、只返回能装载的最大值#include #include #include #include #include using namespace std;templateclass Loading{public: Loading(T w[],int n,T c); void backTrack(int t); int原创 2013-03-12 09:56:19 · 1142 阅读 · 0 评论 -
最大字段和问题
基本求和:#include #include #include using namespace std;int maxSubSum(int *a,int n){ int max=0,b=0; for(int i=0;i<n;i++){ if(b>0) b+=a[i]; else b=a[i]; if(b>max) max=b; } retu原创 2013-03-09 16:57:43 · 1049 阅读 · 0 评论 -
算法&大数据--(1)求交集
大家好,我是时海,熟悉java后台开发、大数据开发,该系列文章将找一些有趣的算法题目,针对少量数据集和海量数据分别寻找解决方案,也欢迎大家多多指教!题目:求两个整数数组的交集,如下:int[] array1={2,6,3,9,4}int[] array2={4,7,9,1}array1,array2数组长度分别为N,M交集为:{4,9}解法:方法一:暴力法 暴力法是最简单,原创 2017-03-11 22:53:55 · 5386 阅读 · 2 评论 -
求两个集合的交集
转自:http://www.k6k4.com/blog/show/aaajyefii1506524723567如:集合A={1,2,3,4}, B={5,3,4}, 结果为:result={3,4}方法一:排序法思路:先对两个集合进行排序O(nlogn),然后通过一遍查询比较O(n), 即可找出两个集合的交集public static void main(S转载 2017-09-27 23:32:47 · 7201 阅读 · 0 评论 -
k6k4刷题-矩阵打印--螺旋状
今天刷了一道k6k4上的题目,分享一下(欢迎加 算法刷题交流QQ群:474397739 一起讨论解决各大刷题网站题目)原题:http://www.k6k4.com/code/qshow/aanstqymm1509803030578从矩阵的第一个元素A[0][0] 开始,顺时针遍历矩阵的最外层元素,然后从A[1][1]遍历矩阵第二层元素,以此类推,直到遍历完所有的矩阵元素。将结果原创 2017-11-09 23:20:53 · 511 阅读 · 0 评论 -
算法-大整数相乘
今天在k6k4网站上做了一道在线编程题,记录一下:原文:大整数相乘两个大整数相乘容易溢出,现将整数用字符数组表示,模拟整数相乘的过程。如两个整数字符数组表示为: a = new char[]{'1', '9', '9'}, b = new char[]{'2', '9', '9', '9', '9'}, 结果为:c = new char[]{'5', '9', '6', '9', '8',转载 2017-11-02 09:37:46 · 627 阅读 · 0 评论 -
整数全排列问题
原文:整数全排列题目:n种不同面值的硬币存放在数组A中,现在需要找零钱给用户,找零金额为m,求最少硬币数找零方式输入、输出描述输入:A为不同面值硬币构成的非负整数数组,n=length(A),m为待找零钱的总金额数输出:最少硬币数找零方式,按面值金额从小到大排序,若无解:返回长度为1的数组,且素组的元素为-1Examp转载 2017-11-05 11:15:42 · 1173 阅读 · 0 评论 -
k6k4刷题--大整数相乘
题目链接:http://www.k6k4.com/code/qshow/aannamwyg1509274910235两个大整数相乘容易溢出,现将整数用字符数组表示,模拟整数相乘的过程。如两个整数字符数组表示为: a = new char[]{'1', '9', '9'},b = new char[]{'2', '9', '9', '9', '9'}, 结果为:c = new char[]{...原创 2018-02-25 22:07:28 · 658 阅读 · 0 评论 -
k6k4刷题--图-找环
原题链接:http://www.k6k4.com/code/sshow/aaozlxizk1512721571778给定一个有向带权图A,找出图中的环,返回构成环的所有顶点,并按顶点从小到大排序。约定:(1)使用邻接矩阵表示图(2)若两个顶点i,j相连则A[i][j]=1,否则A[i][j]=0(3)顶点编号从0开始(4)图是有向的,需要考虑方向性(5)图中最...原创 2018-02-25 22:16:03 · 606 阅读 · 0 评论 -
常用算法面试题一
1 、 介绍一下平衡二叉树 查看答案>> 2 、 什么是二叉查找树?性能怎么样?什么情况下达到最差性能? 查看答案>> 3 、 介绍一下并查集 查看答案>> 4 、 介绍跳跃表SkipList原理 查看答案>> 5 、 Raft算法...原创 2018-09-29 08:23:07 · 552 阅读 · 0 评论 -
常见算法面试题一
1 、 介绍一下平衡二叉树查看答案>>2 、 什么是二叉查找树?性能怎么样?什么情况下达到最差性能?查看答案>>3 、 介绍一下并查集查看答案>>4 、 介绍跳跃表SkipList原理查看答案>>5 、 Raft算法查看答案>>6 、 介绍一下LRU算法查看答案>>7 、 介绍一下红黑树及其应用场景查看...原创 2018-09-29 08:33:40 · 2885 阅读 · 0 评论 -
笔试面试常见问答题
C和C++如何动态分配和释放内存,他们的区别是什么原创 2013-09-06 20:45:39 · 840 阅读 · 0 评论 -
各种排序
归并排序折半查找位排序快速排序原创 2013-09-12 22:32:32 · 665 阅读 · 0 评论 -
常见笔试题3
使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。(转)转载 2013-09-15 11:18:20 · 607 阅读 · 0 评论 -
N皇后问题
#include using namespace std;class Queue{ friend int nQueue(int n);private: bool place(int k); void backTrack(int t); int n, *x, sum; };bool Queue::place(int k){ for(int j=1;j<k;j++)原创 2013-04-01 11:19:59 · 618 阅读 · 0 评论 -
二叉树 非递归遍历
#include using namespace std;#define N 7typedef int ElemType;typedef struct node{ ElemType data; struct node *left,*right; }BTNode;class Btree{public: Btree(ElemType x[],int n); void in原创 2013-04-02 11:03:31 · 673 阅读 · 0 评论 -
快速排序
#include #include #include using namespace std;int partition(int a[],int l,int r){ int i=l,j=r+1; int x=a[l]; while(true){ while(a[++i]<x&&i<r); while(a[--j]>x); if(i>=j)break; swap(a[原创 2013-03-23 16:56:58 · 1036 阅读 · 0 评论 -
算法目录
便于学习和搜集网上资料,整理以下算法: 排序: 快速排序原创 2013-03-23 16:57:29 · 497 阅读 · 0 评论 -
有重复元素的排列问题
#include #include #includeusing namespace std;int total=0;void perm(char a[],int k,int m){ if(k==m){ total++; for(int i=0;i<m;i++) cout<<a[i]<<" "; cout<<endl; }else{ list used;原创 2013-03-24 16:26:38 · 2975 阅读 · 0 评论 -
最大字段求和问题
#include #include #include using namespace std;void maxSum(int *a,int n,int &max,int &mi,int &mj){ max=0; mi=mj=0; int b=0; int p=0; for(int i=0;i<n;i++){ if(b>0){ b+=a[i]; if(b原创 2013-03-26 11:11:37 · 1150 阅读 · 0 评论 -
快速排序
#include #include using namespace std;/*快速排序a:待排数组left:待排数组元素的起始下标right:待排数组最后一个元素下标*/templatevoid quickSort(T *a,int left,int right){ if(left>=right) return; int l=left,r原创 2013-04-22 22:09:51 · 759 阅读 · 0 评论 -
笔试面试----常见算法题
数组分割http://www.cnblogs.com/freewater/archive/2012/08/23/2652974.html原创 2013-08-13 11:50:21 · 732 阅读 · 0 评论 -
把字符串转换成整数
#include #include #include using namespace std;enum Status{ InValid=0, Valid};int isValid=Valid;bool isNullOrEmpty(char* &curPos);int parseInt(char *str){ char *curPos=str; if(isNullO原创 2013-09-04 17:16:17 · 830 阅读 · 0 评论 -
层次遍历二叉树
#include #include #include using namespace std;struct BiTreeNode{ int m_nValue; BiTreeNode* m_pLeft; BiTreeNode* m_pRight;} ;void createTree(BiTreeNode* &root,int value){ if(root==NULL){原创 2013-09-04 17:55:04 · 917 阅读 · 0 评论 -
输入一颗二元查找树,将该树转换为它的镜像
#include #include #include using namespace std;struct BiTreeNode{ int m_nValue; BiTreeNode* m_pLeft; BiTreeNode* m_pRight;} ;void createTree(BiTreeNode* &root,int value){ if(root==NULL){原创 2013-09-04 18:07:55 · 900 阅读 · 0 评论 -
在排序数组中查找和为给定值的两个数字
#include #include #include using namespace std;void findTwoNum(int data[],int length,int n){ if(data==NULL||length<=0) return; int left=0; int right=length-1; while(left<right){ int sum=原创 2013-09-04 18:18:37 · 1232 阅读 · 0 评论 -
第一个只出现一次的字符
#include #include #include using namespace std;char findFirstOne(char* str){ if(str==NULL) return NULL; map table; char* p=str; while(*p!='\0'){ table[*p]++; p++; } p=str; while(*p原创 2013-09-04 17:29:25 · 679 阅读 · 0 评论 -
用两个栈实现队列
#include #include #include using namespace std;template class MyQueue{public: MyQueue(){}; T dequeue(); void enqueue(T); bool empty();private: stack pushStack; stack popStack;};temp原创 2013-09-04 16:49:08 · 632 阅读 · 0 评论 -
查找链表中倒数第k个结点
#include #include #include using namespace std;struct Node{ int data; Node* next;};void createList(Node* &list,int value){ if(list==NULL){ list=new Node; list->data=value; list->next原创 2013-09-04 18:44:12 · 1021 阅读 · 0 评论 -
面试概率问题
抛硬币 连续n个正面原创 2013-09-14 16:03:39 · 861 阅读 · 0 评论 -
k6k4刷题--括号匹配
原题链接:1050-括号匹配题目给定一个仅由 '(',')','{','}','[',']' 构成非空字符串,判定该字符串中括号是否成对出现,并按顺序闭合。如:(1)输入:[{()}] 输出:true(2)输入:[{[)}] 输出:false输入、输出描述输入:str: 非空字符串输出:如果str中的括号成对出现,并按顺序闭合,则返回true;否则返回falseExa...原创 2018-10-20 22:28:55 · 425 阅读 · 0 评论