算法
文章平均质量分 66
svdalv
这个作者很懒,什么都没留下…
展开
-
KMP算法进行字符串匹配
推荐几篇关于KMP算法的几个不错的文章,感谢原作者http://blog.csdn.net/joylnwang/article/details/6778316 http://blog.csdn.net/joylnwang/article/details/6778316 http://www.cnblogs.com/jingmoxukong/p/4343770.html#commentfor转载 2016-01-17 22:57:06 · 222 阅读 · 0 评论 -
排序算法之冒泡排序
冒泡排序算法的核心思想是每一次循环,将最大的数放到最后,跟冒气泡一样。每一次比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换,这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。依次循环,时间复杂度为O(n*n).代码如下: #include using namespace std; void swap(int *xp, int *原创 2016-10-29 22:45:04 · 311 阅读 · 0 评论 -
排序算法之插入排序
插入排序算法跟我们平时打扑克一样,将元素插入到已经排序好的数组中。每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。当元素的大部分顺序排好的时候,适合采用插入排序,代码如下: #include using namespace std; void swap(int *xp, int *yp) { int temp = *xp; *xp =原创 2016-10-29 23:18:13 · 220 阅读 · 0 评论 -
排序算法之归并排序
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个长度为2的有序表;将这原创 2016-11-03 19:27:08 · 274 阅读 · 0 评论 -
二叉树的中序,前序,后序非递归遍历
struct TreeNode { int val; TreeNode * left; TreeNode * right; TreeNode(int x):val(x),left(NULL),right(NULL) { } }; // in-order Traverse void inOrderTraverse(TreeNode * root) { if(root==NULL)原创 2017-04-26 22:41:47 · 324 阅读 · 0 评论 -
leetcode之分治总结
169. Majority Element 题目描述:给定一个数组,求该数组中出现超过一半的数字。 解题思路:Moore Voting 代码如下: class Solution { public: int majorityElement(vector& nums) { int candidate=nums[0]; int ret=1;原创 2017-08-05 12:12:26 · 403 阅读 · 0 评论 -
leetcode888. Fair Candy Swap
description: Alice and Bob have candy bars of different sizes:A[i]is the size of thei-th bar of candy that Alice has, andB[j]is the size of thej-th bar of candy that Bob has. Since they are fr...原创 2019-03-04 22:05:44 · 111 阅读 · 0 评论 -
leetcode 509. Fibonacci Number
比较经典的算法题,Fibonacci序列: solution 1 :递归 class Solution { public: int fib(int N) { if(N<=1){ return N; } return fib(N-1) + fib(N-2); } }; soluti...原创 2019-03-02 15:39:37 · 113 阅读 · 0 评论 -
leetcode566. Reshape the Matrix
Description: In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new one with different size but keep its original data. You're given a matrix represented ...原创 2019-03-02 17:39:03 · 161 阅读 · 0 评论 -
leetcode976. Largest Perimeter Triangle
url:https://leetcode.com/problems/largest-perimeter-triangle/ description: Given an arrayAof positive lengths, return the largest perimeter of a triangle withnon-zero area, formed from 3 of these...原创 2019-03-02 17:49:11 · 188 阅读 · 0 评论 -
leetcode283. Move Zeroes
题目链接:https://leetcode.com/problems/move-zeroes/ 题目描述: Given an arraynums, write a function to move all0's to the end of it while maintaining the relative order of the non-zero elements. Example: ...原创 2019-03-05 23:37:00 · 111 阅读 · 0 评论 -
leetcode 977. Squares of a Sorted Array
题目链接:https://leetcode.com/problems/squares-of-a-sorted-array/ 题目描述: Given an array of integers A sorted in non-decreasing order, return an array of the squares of each number, also in sorted non-dec...原创 2019-02-27 00:09:03 · 139 阅读 · 0 评论 -
leetcode167. Two Sum II - Input array is sorted
网址url:https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/ Given an array of integers that is alreadysorted in ascending order, find two numbers such that they add up to a specific target...原创 2019-03-09 14:36:39 · 122 阅读 · 0 评论 -
leetcode448. Find All Numbers Disappeared in an Array
题目链接:https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/ 题目描述: Given an array of integers where 1 ≤ a[i] ≤n(n= size of array), some elements appear twice and others appear onc...原创 2019-03-06 23:04:02 · 112 阅读 · 0 评论 -
排序算法之选择排序
选择排序是指每次从给点的数组中选取第i个最小的元素的索引,然后与索引为i的元素进行交换。从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。时间复杂度为O(n*n)。 代码如下: #include using namespace std; void swap(int *xp, int *yp) { int temp原创 2016-10-29 22:19:26 · 247 阅读 · 0 评论 -
全面解析回溯法:算法框架与问题求解
感谢原作者:原文地址 全面解析回溯法:算法框架与问题求解 目录 什么是回溯法? 回溯法的通用框架 利用回溯法解决问题 问题1:求一个集合的所有子集问题2:输出不重复数字的全排列问题3:求解数独——剪枝的示范问题4:给定字符串,生成其字母的全排列问题5:求一个n元集合的k元子集问题6:电话号码生成字符串问题7:一摞烙饼的排序问题8:8皇后问题 总结与探讨 附:《算法设转载 2016-09-23 21:46:48 · 482 阅读 · 0 评论 -
leetcode20.ValidParentheses
原题如下: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 val原创 2016-01-30 21:12:57 · 327 阅读 · 0 评论 -
leetcode21.MergeTwoSorted 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. 题目为给定两个有序的链表,然后将这两个链表合成一个,思想很简单,重新建立一个节点,两个指针分别指向这原创 2016-01-30 23:04:19 · 320 阅读 · 0 评论 -
leetcode26RemoveDuplicatesfromSortedArray
原题目如下:Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this in place wi原创 2016-01-31 22:43:18 · 332 阅读 · 0 评论 -
leetcode102.BinaryTreeLevelOrderTraversal
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20原创 2016-03-16 11:17:18 · 300 阅读 · 0 评论 -
leetcode107.Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root). For example: Given binary tree {3,9,20,#,#,15,7},原创 2016-03-17 20:15:10 · 294 阅读 · 0 评论 -
动态规划:从新手到专家
作者:Hawstein 出处:http://hawstein.com/posts/dp-novice-to-advanced.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。 前言 本文翻译自TopCoder上的一篇文章: Dynamic Programming:转载 2016-03-06 11:41:49 · 263 阅读 · 0 评论 -
快速排序算法(c++)版
无意中看见一篇文章,介绍十大经典算法,其中第一个算法就是快速排序算法,算法导论中对快速排序算法有很好的讲解,在平均状况下,排序n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 演算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实作出来,且在大部分真实世界的资料,可以决定原创 2016-02-20 13:46:26 · 653 阅读 · 0 评论 -
Dijkstra算法
戴克斯特拉算法(Dijkstra’s algorithm)是由荷兰计算机科学家艾兹赫尔·戴克斯特拉提出。迪科斯彻算法使用了广度优先搜索解决非负权有向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。其基本思想是,设置顶点集合S并不断地作贪心选择来扩充这个集合。一个顶点属于集合S当且仅当从源到该顶点的最短路径长度已知。 该算法的输入包含了一个原创 2016-02-20 14:34:37 · 417 阅读 · 0 评论 -
二叉树的遍历(C++)版
看了一篇博客,感觉不错,在这里感谢一下原作者,自己顺手复习一下二叉树的遍历。 http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html http://www.seanyxie.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E4%B8%89%E7%A7%8D%E9%81%8D%E5转载 2016-02-21 22:14:46 · 439 阅读 · 0 评论 -
leetcode83.RemoveDuplicatesFromSortedList
Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3. 解题思路: 有顺序的单链表的删除。如果存在原创 2016-03-09 22:14:52 · 355 阅读 · 0 评论 -
递归树求解递归算法的时间复杂度
递归算法时间复杂度的计算方程式一个递归方程: 在引入递归树之前可以考虑一个例子: T(n) = 2T(n/2) + n2 迭代2次可以得: T(n) = n2 + 2(2T(n/4) + (n/2) 2) 还可以继续迭代,将其完全展开可得: T(n) = n2 + 2((n/2) 2 + 2((n/22)2 + 2((n/23转载 2016-03-11 11:18:43 · 821 阅读 · 0 评论 -
leetcode155.MinStack
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. push(x) -- Push element x onto stack. pop() -- Removes the element on top of the stack. top() -- Ge原创 2016-03-29 11:22:23 · 284 阅读 · 0 评论 -
leetcode5.LongestPalindromicSubstring
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 解题思路:给定一个字符串,求这个字符原创 2016-04-14 19:45:12 · 346 阅读 · 0 评论 -
leetcode10.RegularExpressionMatching
'.' Matches any single character. '*' Matches zero or more of the preceding element. The matching should cover the entire input string (not partial). The function prototype should be: bool isMatch原创 2016-04-17 17:20:17 · 344 阅读 · 0 评论 -
leetcode15.3Sum
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero. Note: Elements in a triplet (a,b,c)原创 2016-04-21 15:59:55 · 293 阅读 · 0 评论 -
leetcode697. Degree of an Array
url :https://leetcode.com/problems/degree-of-an-array/ Description: Given a non-empty array of non-negative integersnums, thedegreeof this array is defined as the maximum frequency of any one of ...原创 2019-03-11 22:40:31 · 135 阅读 · 0 评论