算法
hustlx
小硕一枚,兴趣人工智能、机器学习、图像处理。
展开
-
kmp算法及其c++实现
算法详解请看http://www.cnblogs.com/c-cloud/p/3224788.html下面是我用c++实现的版本:#include #include #include #include #include #include using namespace std;vector makeNext(string P){ int q, k;//q:模版字符串原创 2016-03-16 15:12:12 · 811 阅读 · 0 评论 -
位运算实现加减乘除
加法运算:[cpp] view plain copyint AddWithoutArithmetic(int num1,int num2) { if(num2==0) return num1;//没有进位的时候完成运算 int sum,carry; sum=num1^num2;//完成第一步没有进位的加转载 2016-08-12 21:22:37 · 2719 阅读 · 0 评论 -
Morris Traversal方法遍历二叉树
Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)本文主要解决一个问题,如何实现二叉树的前中后序遍历,有两个要求:1. O(1)空间复杂度,即只能使用常数空间;2. 二叉树的形状不能被破坏(中间过程允许改变其形状)。通常,实现二叉树的前序(preorder)、中序(inorder)、后序(postorder)遍历有两个常用的方法:一是递归转载 2016-08-11 18:27:45 · 894 阅读 · 0 评论 -
深度优先DFS和广度优先BFS的非递归实现
void DFS(Node root) //非递归实现{ stack s; root.visited = true; printf("%d ", root.val); //访问 s.push(root); //入栈 while (!s.empty()) { Node pre= s.top();原创 2016-08-09 16:32:58 · 7112 阅读 · 1 评论 -
单链表反转
单链表反转ListNode* reverseKGroup(ListNode* head, int k) { ListNode* pre = NULL; ListNode* cur = head; ListNode* next; while(cur) { next = cur->next; cur->next = pre;原创 2016-08-09 11:17:53 · 523 阅读 · 0 评论 -
例题
转自:CTCI面试系列——谷歌面试官经典作品 | 快课网谷歌面试官经典作品(CTCI)目录1.1 判断一个字符串中的字符是否唯一1.2 字符串翻转1.3 去除字符串中重复字符1.8 利用已知函数判断字符串是否为另一字符串的子串2.1 从链表中移除重复结点2.2 实现一个算法从一个单链表中返回倒数第n个元素2.3 给定链表中间某结点指针转载 2016-08-03 09:58:42 · 912 阅读 · 0 评论 -
连续子数组最大和问题
1. 问题描述输入一个整形数组,求数组中连续的子数组使其和最大。比如,数组x应该返回 x[2..6]的和187.2. 问题解决我们很自然地能想到穷举的办法,穷举所有的子数组的之和,找出最大值。穷举法i, j的for循环表示x[i..j],k的for循环用来计算x[i..j]之和。maxsofar = 0for i = [0, n)转载 2016-07-31 12:03:25 · 668 阅读 · 0 评论 -
六大排序算法c++实现
public static void InsertionSort(int[] arr) { int len = arr.length; int i,j; int key; for(j=1;j<len;j++) { key = arr[j]; i=j-1;原创 2016-03-19 11:04:42 · 719 阅读 · 0 评论 -
背包九讲
目录第一讲 01背包问题第二讲 完全背包问题第三讲 多重背包问题第四讲 混合三种背包问题第五讲 二维费用的背包问题第六讲 分组的背包问题第七讲 有依赖的背包问题第八讲 泛化物品第九讲 背包问题问法的变化附:USACO中的背包问题前言本篇文章是我(dd_engi)正在进行中的一个雄心勃勃的写作转载 2016-05-07 22:25:12 · 927 阅读 · 0 评论 -
回溯法
回溯法1、有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。2、回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。这种方法适用于解一些组合数相当大的问题。3、回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含(剪枝过转载 2016-03-21 21:08:06 · 1129 阅读 · 0 评论 -
二叉搜索数
1、构建平衡二叉搜索树TreeNode* sortedArrayToBST(vector& nums, int start, int end){ if(end<=start) return NULL; int mid=(end+start)/2; TreeNode* root=new TreeNode(nums[mid]); r转载 2016-05-04 16:03:31 · 707 阅读 · 0 评论 -
红黑树
红黑树之前看了很多写红黑树的博客,但是感觉都讲的不太清楚!没说这样操作如何使他保持平衡的,于是疑惑重重,就看不下去了,一次不经意看到一个人说维基百科的红黑树讲的好,我就随便点了一下一看——这下疯了~,怎么讲的这么好!可以说是把一个复杂的问题,讲得简单化!这太幸福了! 于是我就慢慢学会了!强烈推荐维基的这个讲解,再也找不到比这还好的讲解了!不知道它上边其它的怎么样,反正这个很好!!既然学会了转载 2016-05-04 20:50:07 · 569 阅读 · 0 评论 -
二叉树的非递归遍历
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说原创 2016-05-03 16:14:43 · 1519 阅读 · 0 评论 -
77. Combinations 回朔法例子
Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.For example,If n = 4 and k = 2, a solution is:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]原创 2016-04-10 13:30:12 · 550 阅读 · 0 评论 -
79. Word Search回朔法例子
Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically原创 2016-04-10 15:00:57 · 923 阅读 · 0 评论 -
华为软件精英挑战赛及最短路径dijkstra源代码
前言赛题源自“未来网络”业务发放中的路由计算问题。算路问题属于基础算法问题,在图论、网络、交通等各个方面均有着广泛的研究与运用,里面不乏一些经典的算法,例如最短路中的广度优先搜索,Dijkstra算法等。网络算路问题的更优算法实现对于网络资源高效配置具有重要价值。1 问题定义给定一个带权重的有向图G=(V,E),V为顶点集,E为有向边集,每一条有向边均有一个权重。对于给定的顶点s、t,原创 2016-03-23 09:06:15 · 1282 阅读 · 0 评论 -
划重点
机器学习:几种范数的区别、一范数的稀疏批量、随机梯度下降PCA主成分分析支持向量机推倒精确度、召回率和F1、ROC曲线、AUC神经网络推倒朴素贝叶斯推倒逻辑回归 (重点)推倒 频率学派和贝叶斯学派生成方法和判别方法ID3/C4.5/CART 决策树熵、互信息、KL散度过拟合、正则化偏差和方差感知机推倒k-means聚类推倒KKT条原创 2017-02-22 19:16:13 · 1217 阅读 · 0 评论