编程
普通网友
这个作者很懒,什么都没留下…
展开
-
在线编程(一)
1.转圈形式打印矩阵。 思想:一圈一圈的打印,左上角下标为为(tr,tc),右下角下标设为(dr,dc),打印最外圈后,左上角下标+1,右下角下标–, C++实现如下:#include <iostream>#include <vector>using namespace std;void printf(vector<vector<int>> matrix,int tr,int tc,int原创 2017-05-31 21:11:03 · 274 阅读 · 0 评论 -
在线编程(二)
1.给定一个无序数组,找出其中最小的k个数。 思路:建立一个k个数的最大堆,则这个堆的堆顶为最大的数,依旧与剩下的数比较,若小于堆顶,则互换并维护这个堆。得到的这个堆即为最小的k个数。#include #include using namespace std;//建立k个数的最大堆void heapinsert(vectorint> &arr,int value,int ind原创 2017-06-02 13:51:50 · 205 阅读 · 0 评论 -
在线编程(三)
1.斐波那契数列 思路1:直接递归调用,时间复杂度 O(2N)O(2^N)int Fibonacci(int n){if(n==1 || n==2)return n;return Fibonacci(n-1) + Fibonacci(n-2);}思路2:动态规划,将前n次的结果保存,时间复杂度O(N)O(N)int Fibonacci(int n){if(n==1 || n==2)r原创 2017-06-05 11:20:24 · 280 阅读 · 0 评论 -
在线编程四
1.求最长递增子序列 给定:arr=[2,1,5,3,6,4,8,9,7]; 得到:[1,3,4,8,9]#include#includeusing namespace std;/**********************************************///时间复杂度 n^2vectorint> getdp(vectorint> arr){ in原创 2017-06-21 17:02:35 · 241 阅读 · 0 评论