练习
不觉
这个作者很懒,什么都没留下…
展开
-
练习
1、两个已排序数组合并以后的中位数int getMedin(int A[],int m,int B[],int n) { int p1=0; int p2=0; int mid=p1; int flag=0; for(int i=0;i<(m+n)/2;) { while(p1<m&&p2<n&&i原创 2013-04-22 20:53:51 · 704 阅读 · 0 评论 -
小顶堆实现求无序数组中的最大k个数
//建立含有n个元素的小顶堆 void MakeMinHeap(int a[], int n) { for (int i = n / 2 - 1; i >= 0; i--) MinHeapFixdown(a, i, n); }//在最小堆中加入新的数据nNum void MinHeapAddNumber(int a[], int n, int n原创 2013-03-30 15:35:53 · 1112 阅读 · 0 评论 -
对称子串的最大长度
首先写一个判断子串是否对称的函数//判断子串是否对称bool isSymmetrical(char *pbegin, char *pend) { if(!pbegin||!pend||pbegin>pend) return false; while(pbegin<pend) { if(*pbegin!=*pend) return false; pbegin++;原创 2013-04-10 12:44:38 · 789 阅读 · 0 评论 -
POJ 1222
熄灯问题几个TIPS1、只要有第一行的原创 2014-10-25 20:51:57 · 1140 阅读 · 0 评论 -
POJ 1191 棋盘分割
Tips1、每一次分割都有四种方法,liu原创 2014-10-30 21:14:47 · 768 阅读 · 0 评论 -
汉诺塔
Tips1、所有的移动都可以分成原创 2014-10-31 21:27:58 · 716 阅读 · 0 评论 -
POJ 1163 数字三角形
Tips递归超时,所以选择用yi原创 2014-11-01 16:22:26 · 850 阅读 · 0 评论 -
POJ 1753 FlipGame
这道题和之前做的熄灯问题很像,但还是花了很长时间,可能现在使用的算法还不是很好,等有时间再看看有什么其它好的解法。犯的几个错误:1、在做枚举的时候,终止条件设成了Press[1][4] ==1 2、第二次枚举之前,没有将Press数组重置3、输入数据的时候 用%c一个一个输入,这样的话会将回车也算到数组当中去,导致赋值不正确真的需要多练习啊#原创 2015-08-26 16:34:52 · 565 阅读 · 0 评论 -
LeetCode 1 Two Sum
开始刷LeetCode刷完换工作!!!先排序后左右搜索struct Element{ int iNumber; int iIndex;};bool compareFunc(const Element& arg1, const Element& arg2){ return arg1.iNumber<arg2.iNumber;}class Solution {pub原创 2015-12-23 20:12:48 · 437 阅读 · 0 评论 -
LeetCode 2 Add Two Numbers
代码写的有点乱,删了个delete之后快了4ms开始题目都没看懂,借助百度翻译 汗就是倒着加7 8 91 0 18 8 0 1/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x)原创 2015-12-23 21:05:10 · 485 阅读 · 0 评论 -
LeetCode 3 Longest Substring Without Repeating Characters
能最快想出来的解法,性能肯定不是太好class Solution {public: int lengthOfLongestSubstring(string s) { string s1; int result = 0; int max = 0; int len = s.length(); for(int i =0 ;i<len;++i) { resul原创 2015-12-26 21:38:49 · 567 阅读 · 0 评论 -
输入一个升序数组和一个整数,在数组里面找两个数使它们相加的和为这个整数
思路:因为数组为升序数组,就可以在数组前端和尾端分别设置一个标记,依次来控制相加所得整数的大小,并与所给数比较,这样调整起来会比较快。void getData(int data[],int n,int M){ int i=0,j=n-1; while(i!=j) { if(data[i]+data[j]==M) { cout<<data[i]<<" "<<da原创 2013-03-30 12:08:50 · 1038 阅读 · 1 评论