- 博客(18)
- 资源 (18)
- 收藏
- 关注
原创 ZigZag Conversion
The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H NA P L S I I
2017-09-13 10:35:14 301
原创 Median of Two Sorted Arrays
There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).Example 1:nums1 = [1,
2017-09-06 14:32:38 252
原创 Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space.Some hints:Could negative integers be palindromes? (ie, -1)If you are thinking of converting the integer to string, note
2017-09-06 14:30:56 242
原创 Longest Palindromic Substring
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example:Input: "babad"Output: "bab"Note: "aba" is also a valid answer.Ex
2017-09-06 14:07:21 266
原创 Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters.Examples:Given "abcabcbb", the answer is "abc", which the length is 3.Given "bbbbb", the answer is "b", with
2017-08-31 15:57:52 254
原创 天平称球的问题
这是原来写在QQ空间的一篇文章,现在捡主要逻辑过来作为博客的一道益智题问题描述:13个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。解题思路:自己的方法:13个球的分法:4,4,5之所以这么分,其实也有一定道理,相同的两部分如果太少了,如3,3,7,那么处理7个球的时候就比较麻烦了,次数也会随着增多,又或者相同的两部分太多了,如5,5,3 ,那处理
2017-03-31 09:24:57 875
原创 KMP算法代码实现
KMP算法,看了好久,才写出代码,理解起来有点难度,后来在捋顺了关系后,再回顾就没有之前那样困难了KMP算法的关键在于求next,而next的计算则在于前缀字符串的计算,将问题分解,先求出f(最大前缀字符串),之后再求nextKMP是一个单模匹配算法,时间复杂度为O(m),其中m是带搜索目标串的长度。写出KMP算法代码,主要参考了2篇文章,在本处附上:https://w
2017-03-30 17:46:24 771
原创 归并排序
//复杂度O(nlogn),需要辅助空间#include#includevoid merge(std::vector& src, std::vector& dst, int start, int mid, int end){ int k = start; int i = start; int j = mid + 1; for (; (j <= end) && (i <= mid);
2017-03-30 17:22:51 268
原创 快排改进(快排+插入)
/* 快排改进算法 快排+插入,当集合较小时,不再排序,由于已经通过快排,保证基本有序,移动次数不会太多,此时改用插入排序, */static void quickSortSection(std::vector& vec, int start, int end, int k) { if ((end - start) > k) { if (start >= end)
2017-03-21 11:31:16 668
原创 插入排序
/* 插入排序, 复杂度O(n^2),在基本有序时,效率较高,倒序时最差 原理:将元素一个个插入已经排好序的队列中 */ static void insertSort(std::vector& vec) { if (1 == vec.size()) { return; } for (int i = 1; i < vec.size(); i++) { in
2017-03-20 15:54:11 237
原创 选择排序
/* 选择排序,时间复杂度O(n^2) */ static void selectSort(std::vector& vec) { if (vec.empty()) { return; } for (int i = 0; i < vec.size(); i++) { int index = i; for (int j = i + 1; j < vec.si
2017-03-20 15:53:40 221
原创 希尔排序
/* 插入排序的变种,通过增量这一特性,减少了数据比较和移动次数,是一种优化的插入排序 */void shellSort(std::vector& vec){ int rate = 2; int increNum = vec.size() / rate; while(increNum) { for
2017-03-20 15:52:36 239
原创 堆排序
/* 调整堆, 向下调整的过程 */ static void heapAdjust(std::vector &vec, int start, int end) { int i = start; while((2*i + 1) < end) { int maxIndex = 2*i + 1; if ((2*i + 2) < end) { if
2017-03-20 15:50:46 266
原创 插入排序
/* 插入排序, 复杂度O(n^2),在基本有序时,效率较高,倒序时最差 原理:将元素一个个插入已经排好序的队列中 */ static void insertSort(std::vector& vec) { if (1 == vec.size()) { return; } for (int i = 1; i < vec.size(); i++) { in
2017-03-16 15:26:34 222
原创 unix临时文件创建
/* 看例子,创建一个文件,在unlink,文件i节点的链接数变为0,但持有该文件的句柄,依然可以fgets和fputs该文件,说明文件的数据块依然存在,在fclose之后,才彻底删除,这就是使用临时文件的原理 */#include#include#include#include#include/* setvbuf实现setbuf,仅供参考 */void setbuf(FILE *
2017-03-10 16:01:09 449
原创 二叉排序树
/* 二叉查找树,中序遍历为从小到大的顺序,在查找树基本平衡时,复杂度logn,若退化成一条线时,复杂度n */#include#include#include #include#include typedef struct _SearchTree{ int data; int times; struct _SearchTree *pLChild; struct _Sea
2017-03-09 17:39:38 256
原创 快排算法(递归/非递归)
最近看了一篇文章,介绍递归转非递归的方法,主要是通过stack的数据结构模拟递归函数堆栈的层次调用(后进先出,最里层-->最外层,层层弹出),排序算法很多是通过递归来实现的,这里照葫芦画瓢,实现一下非递归的快排算法。先附上快排的递归用法,用于对比/* 快速排序:从数组中选出一个值flag,通过一轮比较,将比flag大的置于一侧,比flag小的置于另一侧,再依照此法,对这两部分做同样的比较
2017-03-02 15:26:35 1782
原创 冒泡排序算法
比较简单,以冒泡排序开始自己的第一篇博文/* 冒泡排序:从头开始依次比较,若前一个值比后一个值大,则交换,否则不做任何操作,比如第一个与第二个比较,比较完成之后(交换或不交换),第二个与第三个比较,……,最后第n-1个与第n个值比较,交换或不交换,此时最大值放在了第n个值的位置;然后从头开始进行下一轮比较,比较到第n-1个位置,此轮最大值置于第n-1的位置;继续下一轮,直至剩余一个元素
2017-03-02 14:54:42 288
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人