算法和数据结构
文章平均质量分 66
小章鱼哥
这个作者很懒,什么都没留下…
展开
-
如何计算时间复杂度
一、概念时间复杂度是总运算次数表达式中受n的变化影响最大的那一项(不含系数)比如:一般总运算次数表达式类似于这样:a*2^n+b*n^3+c*n^2+d*n*lg(n)+e*n+fa ! =0时,时间复杂度就是O(2^n);a=0,bO(n^3);a,b=0,cO(n^2)依此类推eg:(1) for(i=1;i //循环了n*n次,当然是O(n^2) f转载 2016-09-06 22:04:18 · 454 阅读 · 0 评论 -
c++实现快排。。下午补充
#include #include #include using namespace std;//快速排序int arr[100];int n;int sorts(int arr[],int l,int r);void quickSort(int arr[],int l,int r){ int mid=sorts(arr,l,r); for(int i=0原创 2016-03-26 13:09:03 · 404 阅读 · 0 评论 -
c++实现归并排序
#include #include #include using namespace std;int arr[100];int n;//排序//归并排序 左排序右排序,归并(将两边最小的元素复制到原数组)void merge(int arr[],int l,int mid,int r);void mergeSort(int array[],int l,int r){原创 2016-03-26 11:45:39 · 422 阅读 · 0 评论 -
[leetcode]Longest Substring Without Repeating Characters【最长不重复字符子串】
Longest Substring Without Repeating Characters My Submissions Question SolutionGiven a string, find the length of the longest substring without repeating characters. For example, the longest substring原创 2015-09-15 10:47:24 · 438 阅读 · 0 评论 -
[leetcode]median of two sorted arrays【寻找第k小的数问题】
Median of Two Sorted ArraysThere 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)).题意:原创 2015-09-15 11:16:50 · 451 阅读 · 0 评论 -
[leetcode]two sum (遍历 哈希)
Two SumGiven an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up to the target, w原创 2015-09-09 15:04:09 · 504 阅读 · 0 评论 -
[leetcode] add two numbers(大数据加法链表版)
Add Two NumbersYou are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and retur原创 2015-09-09 15:27:29 · 511 阅读 · 0 评论 -
acm DP经典题目 滑雪问题 【DP 记忆化搜索 递归】
滑雪问题Michael喜欢滑雪这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21原创 2015-04-01 22:06:38 · 1796 阅读 · 0 评论 -
山大工大联谊1009 integer division ii【DP】
1009 integer division iidescriptionThis is a very simple problem, just like previous one.You are given a postive integer n, and you need to divide this integer into m pieces. Then multip原创 2015-03-31 12:44:11 · 802 阅读 · 0 评论 -
acm DP经典5题
1.最大连续子序列给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序中元素和最大的一个, 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。状态转移方程:原创 2015-04-01 21:05:47 · 885 阅读 · 0 评论 -
c++实现二分查找 递归和非递归
#include #include #include using namespace std;//二分查找 递归和非递归int arr[100];int binarySearch(int arr[],int l,int r,int x){ if(l<=r){ int mid=(l+r)/2; if(arr[mid]==x)return mi原创 2016-03-26 17:00:53 · 606 阅读 · 0 评论 -
c++ 辗转相除法 递归非递归
#include #include #include using namespace std;//求最大公约数 辗转相除法long long gcd(long long x,long long y){ if(x>y)return gcd(y,x); if(x==0)return y; return gcd(y%x,x);}long原创 2016-03-26 18:22:52 · 4195 阅读 · 0 评论 -
剑指offer 青蛙跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution {public: int jumpFloor(int number) { if(number<=0)return -1; if(number==1)return 1; if(number==2)re原创 2016-03-27 10:20:01 · 511 阅读 · 0 评论 -
小丸子总结排序算法
一. 排序算法(内部排序)1.直接插入排序(1)思路:每次将一个待排序的记录,根据关键字的大小,插入到排好序的序列里。(2)代码:function sort(arr){ for(var i = 1; i < arr.length; i++ ){ for(var j = 0; j < i; j++ ){ if(arr[j] > a原创 2016-09-09 16:34:47 · 475 阅读 · 0 评论 -
C++15道基础算法题---(2)排列组合
两种排列组合问题:abc acb bac bca cab cbaa b c ab ac bc abc1.第一种交换问题。#include <iostream>#include <algorithm>#include <string>#include <vector>#include <cstdio>#include <cstdlib>#include <cmath>#inclu原创 2016-08-03 17:52:10 · 771 阅读 · 0 评论 -
C++15道基础算法题---(1)合并已排序数组
0.题目: 1、合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素;思路:用户输入两个数组的长度len1,len2动态创建两个数组arr1,arr2将arr1,len1,arr2,len2传入mergeArr函数mergeArr函数动态创建长度为len1+len2的数组arr。将arr1和arr2的值循环复制到arr中。1.动态创建数组 int *ar原创 2016-07-05 17:51:02 · 928 阅读 · 0 评论 -
堆
搞得好像多么高大上的样子1.最大堆 : 父节点的值大于左右孩子节点的值的完全二叉树2.最小堆:父节点的值小鱼左右孩子节点的值的完全二叉树瞬间转化成二叉树的问题了以下是编程珠玑的关于堆的代码:// 最大堆实现, 数组下标从1开始,a[0]不使用。// 交换两数void swap(int &a, int &b) { int t = a; a =原创 2016-04-21 22:32:02 · 316 阅读 · 0 评论 -
为啥要用kmp算法,有什么依据嘛
数据量大的时候使用KMP算法,大大加快时间,自不用说啦。O(n)的时间复杂度看了一堆博客介绍。。才懂了:因为字符串的一个字串,串头和串尾可能是重复的,,就是前缀和后缀重合了比如上一排 红框 左边这个ABCDAB 的前缀和后缀都有AB,那要是ABCDAB不能匹配的话,直接跳过ABCD到红框前面的两个字母AB开始匹配不就结啦。朴素匹配是一次挑一个坑,KMP就是为了少条坑,预原创 2016-04-21 21:39:59 · 1750 阅读 · 0 评论 -
c和c++栈
先来看说说c++里面的栈吧c++里面封装了栈的标准库使用标准库的栈和队列时,先包含相关的头文件#include#include定义栈如下:stack stk;定义队列如下:queue q;栈提供了如下的操作[cpp] view plain copys.empty()原创 2016-04-21 21:14:50 · 517 阅读 · 0 评论 -
华为2016实习生招聘笔试题第三题--和尚挑水
【问题描述】和尚挑水 某寺庙里7个和尚:轮流挑水,为了和其他任务不能冲突,各人将有空天数列出如下表:和尚1: 星期二,四;和尚2: 星期一,六;和尚3: 星期三,日;和尚4: 星期五;和尚5: 星期一,四,六;和尚6: 星期二,五;和尚7: 星期三,六,日;请将所有合理的挑水时间安排表 【思路】用回朔法求解(递归方式实现,当然也可以用迭代方式)。用结构体存储原创 2016-04-21 17:55:43 · 1020 阅读 · 0 评论 -
一个int数的二进制有多少个一
#include #include #include using namespace std;//一个int数有多少个一int main(){ int n; while(cin>>n){ int count=0; while(n){ count+=(n&0x01); n>>=1;原创 2016-04-19 17:13:25 · 1769 阅读 · 0 评论 -
剑指offer 反向遍历链表
#include #include #include #include #include #include using namespace std;//链表的反遍历,利用栈struct ListNode{ int val; struct ListNode *next;};vector print(struct ListNode* head){ vector原创 2016-03-27 20:47:22 · 742 阅读 · 0 评论 -
515C. Drazil and Factorial
C. Drazil and Factorialtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputDrazil is playing a math game with Varda.Le原创 2015-03-23 21:38:08 · 540 阅读 · 0 评论 -
515B. Drazil and His Happy Friends
B. Drazil and His Happy Friendstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputDrazil has many friends. Some of them原创 2015-03-23 21:20:56 · 763 阅读 · 0 评论 -
山大工大联谊1003 A * B【坑】
1003 A * BdiscriptionYour task is to find the minimal positive integer number Q so that the product of digits of Q is exactly equal to N.inputThe first line of input contains原创 2015-03-29 19:40:21 · 1001 阅读 · 0 评论 -
523C Name Quest【挡板,字符串】
C. Name Questtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputA Martian boy is named s — he has got this name quite r原创 2015-03-16 22:21:27 · 684 阅读 · 0 评论 -
523A Rotate, Flip and Zoom
A. Rotate, Flip and Zoomtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputPolycarp is writing the prototype of a graph原创 2015-03-16 22:40:45 · 717 阅读 · 2 评论 -
523D - Statistics of Recompressing Videos【模拟,greedy】
D. Statistics of Recompressing Videostime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputA social network for dogs calle原创 2015-03-16 22:01:07 · 840 阅读 · 3 评论 -
518A - Vitaly and Strings【string】
A. Vitaly and Stringstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputVitaly is a diligent student who never missed a原创 2015-03-02 21:56:10 · 684 阅读 · 0 评论 -
Problem 518C - Anya and Smartphone
C. Anya and Smartphonetime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputAnya has bought a new smartphone that uses Berd原创 2015-03-02 22:04:23 · 456 阅读 · 0 评论 -
519C - A and B and Team Training【greedy】
C. A and B and Team Trainingtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputA and B are preparing themselves for prog原创 2015-03-02 21:51:42 · 416 阅读 · 0 评论 -
519B. A and B and Compilation Errors【implamentation】
B. A and B and Compilation Errorstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputA and B are preparing themselves fo原创 2015-03-02 17:15:45 · 586 阅读 · 0 评论 -
518B - Tanya and Postcard【哎还是string】
B. Tanya and Postcardtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputLittle Tanya decided to present her dad a postc原创 2015-03-02 21:59:23 · 653 阅读 · 1 评论 -
519A - A and B and Chess【implementation】
A. A and B and Chesstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputA and B are preparing themselves for programming原创 2015-03-02 16:57:01 · 579 阅读 · 0 评论 -
522A. Reposts
A. Repoststime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputOne day Polycarp published a funny picture in a social netw原创 2015-03-09 22:22:45 · 1111 阅读 · 0 评论 -
520B. Two Buttons【这题好魔性 greedy 反推】
B. Two Buttonstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVasya has found a strange device. On the front panel o原创 2015-03-09 22:07:13 · 1108 阅读 · 0 评论 -
522B. Photo to Remember
B. Photo to Remembertime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputOne day n friends met at a party, they hadn't se原创 2015-03-09 22:30:29 · 649 阅读 · 0 评论 -
山大工大联谊1005 count triangle【思维】
1004 count trianglediscription一开始就出一大堆英文题确实不好,那么现在来一道中文题目(虽然我觉得英文比中文好解释清楚)。题目是这样子的:给定N条边,编号从1~N,每条边都有一个边长,问可以组成多少个不同的三角形(有一条边的编号不同便视为不同的三角形)。请机智的你来解决这道题吧~input输入数据的第一行为一个整数T(T 每组数据占两原创 2015-03-29 21:28:19 · 986 阅读 · 0 评论 -
山大工大联谊1004 Count
1004 CountdiscriptionYou are given an integer array s[] and are asked to count how many positions a, b, c and d satisfy the condition: s[a] + s[b] + s[c] == s[d].Note that a, b, c, and d do not原创 2015-03-29 20:11:54 · 767 阅读 · 0 评论 -
工大山大联谊1001 N!(找规律)
1001 N!discriptionThis task is very simple, please calculate how many zeros are there at the end of calculation of n!.For example, 15! = 1307674368000, so answer is 3.inputAt the first lin原创 2015-03-29 14:44:17 · 849 阅读 · 0 评论